人机交互控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟驾驶系统场景管理平台设计
-- 宣爱练车房人机交互控制
场景系统输入控制包括由驾驶者控制汽车运动的基本操作,包括对方向盘、油门、离合、刹车和档位转换等,以及触及点火开关、转向指示灯按钮、喇叭鸣笛按钮等辅助性操作,还有就是针对软件运行过程中的某些设置功能的键盘和鼠标操作。读入的汽车运动控制信息,通过汽车的动力学模型运算后,交互控制视觉场景的显示。画面输出除了视景的变化外,同时输出经过汽车动力模型计算后产生的汽车运行信息,包括当前速度、档位、点火开关状态、鸣笛状态、转向指示状态等。
如果仅仅依赖windows的消息机制,系统的实时性则难以达到要求,由于DirectInput直接与设备驱动进行通讯,具有底层输入获取的处理能力,其能够立即响应硬件的中断,不需要经过windows系统的消息机制,保证信号处理的实时性,所以本程序利用DirectInput组件提供的输入接口功能,实现控制信号的输入。输入设备包括三个设备:鼠标、键盘和专用的驾驶模拟游戏杆。利用了主板上的键盘和鼠标输入接口,使输入信号以系统能识别的键盘鼠标兼容的数据形式输入系统,由DirectInput获取并处理,游戏杆采用最新的罗技公司生产的针对赛车类游戏的专业G25型游戏杆,它可以提供包括对方向盘、油门、离合、刹车和档位的操作,通过DirectInput接口将驾驶操纵信号输入到场景管理平台中。
1.操作设备输入的设置和初始化
DirectInput组件由支持COM接口的DirectInput对象和每一种提供数据的输入设备对象组成。DirectInput对象在程序中表征DirectInput子系统,用于查询和管理输入系统。创建DirectInput对象之后,可以使用该对象的接口方法查询系统中的可用输入设备,并为程序中需要使用的每一个设备创建一个DirectInputDevice对象。在DirectInputDevice设备对象创建出来后,必须为它设置设备的属性和数据的读取格式。每一个DirectInputDevice对象都表示了
一个输入设备,通过对设备属性的设置,将设备对象设置为鼠标、键盘、游戏杆等,并且设置了DirectInput设备的数据读取模式。
DirectInput支持两种类型数据读取模式:缓冲区模式和立即模式。缓冲区模式数据是将输入事件的数据保存在缓冲区中,直到应用程序取得这些数据。立即模式数据是指一个输入设备当前状态的映像。在应用程序中,如果只关心设备当前的状态,可以使用立即模式。当设备的输入事件比设备当前状态对应用来说更重要时,应选择缓冲区模式。
对键盘来说,DirectInput不使用字符重复设置。当使用缓冲区数据模式时,模式对键盘中每个健的按下和释放作为事件来解释,当使用立即数据时,DirectInput只考虑当前状态,而不管windows报告的键盘消息。对于本系统,程序需要获取的主要是键盘上按键当前所处的状态,即当前被检索查询时是按下状态还是松开状态,所以键盘数据由立即模式数据获得。
对于用于虚拟驾驶操作的游戏杆,输入的量中有四个连续变量、档位操作枚举变量以及按钮变量等,在每个仿真周期中需要得到所有的这些操作数值以便于通过动力学计算作出响应,所以设置为缓冲区模式。
2.操作控制参数的获取
输入设备初始化完毕后,程序屏蔽了操作系统的键盘和鼠标响应。操作者对键盘、鼠标以及虚拟驾驶游戏杆的操作直接通过DirectInput接口传入系统。
读取出驾驶人员的操作数据后,将转向盘和各个踏板的数值进行一定的线性变换,各项数据的数值范围转变到与汽车动力学模型相匹配的范围,然后通过场景管理类将这些数据传递到动力学模型中进行计算。
3.操作触感系统
在汽车行驶的过程中,驾驶员根据交通环境、路面状况实时操作汽车的操纵装置来改变汽车的运动状态,汽车改变运动状态后,驾驶员又根据视觉、触觉(路感)和体感的反馈信息,判断原操作的正误,并对下一次操作做出决策,周而复始地操作,使汽车按驾驶员的主观意图行驶。因此,“触感”系统的研究是汽车驾驶模拟系统研究的重要内容。操作触感系统实质是实现操作与汽车状态间信息传递环节的模拟装置,是形成驾驶模拟不可少的重要组成部分。
驾驶员的触感信息包括方向盘反力(回正力矩)及振动、油门踏板力、制动踏板力、离合器反力以及变速器手柄反力,其中方向盘回正力矩和振动是驾驶员触感中最主要的信息。因此,方向盘回正力矩及振动模拟的逼真度直接关系到驾车路感的真实性,并影响驾驶模拟试验的准确性。在真实的驾驶过程中由于发动机启动、汽车行驶路面的不平整等原因都会引起汽车的振动。在本驾驶系统中通过力反馈系统控制方向盘的振动过程来表达上述情况,将发动机启动过程、行驶在砂土路面或者其他路面所引起的汽车的振动状态写成专门的力反馈文件,在汽车发生上述情况时调用这些文件,驱动方向盘振动,形成力反馈效果。真实驾驶过程中的方向盘回正力矩与路面对转向轮的反作用、转向机构的摩擦力和前轮与转向系的惯性等方面有关,具体运算过程比较复杂,本虚拟驾驶系统采取简化措施,和各个踏板的反力一样,通过游戏杆机械结构中的弹簧来调节。