驾驶仿真(通用5篇)
驾驶仿真 篇1
0引言
OpenGL是一个优秀的专业化三维应用程序接口, 具有完全开放的图形开发环境, 又具有跨平台、移植性好等特点, 因此被广泛应用在计算机仿真以及虚拟现实系统中。由于OpenGL只是通过基本的几何图元点、线及多边形来建立三维立体模型, 并没有提供三维模型的高级命令, 从而使得在OpenGL中建立复杂模型相对困难。鉴于OpenGL不要求将三维模型写成固定的数据格式, 并且还可以利用其他格式的数据源, 如借用AutoCAD和3DSMAX等。因此, 本研究将AutoCAD中建好的驾驶机器人模型以各个构件为单元拆分成几个部件, 并将其转化成3DS文件导入到OpenGL中, 利用VC++与OpenGL相结合, 成功开发了驾驶机器人的运动学仿真系统, 为解决驾驶机器人机械结构的干涉问题、了解机器人工作空间的形态及大小提供了一种很好的实验手段。
1驾驶机器人几何模型的建立及OpenGL的导入
1.1 几何模型的建立
利用AutoCAD制作出驾驶机器人的精确模型, 然后以各个运动构件为单元将其分成油门机械腿、制动机械腿、离合器机械腿、换档机械手及汽车方向盘、机器人机身和安装座6个部件, 并以DXF格式保存在相应的文件夹中。打开3DS MAX里的文件, 选择导入, 将文件类型选为AutoCAD (*.DXF) , 找到保存好的AutoCAD文件并选中, 此时DXF文件便转换成3DS文件, 名为Robot.3ds, 同时也可以在3DS MAX中渲染和着色。
1.2 3DS文件导入到OpenGL
3DS文件导入到OpenGL, 可以参考以下方法:转入.max文件, 写插件导出自己熟悉的格式;还可以使用3D文件转换工具3d exploration或deep exploration软件转换成为其他自己熟悉的格式。
本研究中, 我们把3ds模型作为OpenGL的物理模型, 可以使用适当的软件将3ds文件转换成C语言或其他语言支持的文件, 从而获得物理模型的相关数据。在这里用的是一个叫View3DS的软件。利用View3DS.exe进行模型格式转换的方法是:在命令行中输入模型文件的名称, 如View3DS.exe Robot.3ds, 或者直接将3ds文件拖到View3DS上;在弹出的窗口中显示出需要转换的3ds模型;在对话框中单击鼠标左键, 选择[E]Export OpenGL C Code菜单项, 将在当前目录中生成OpenGL程序, 包括与模型名同名的.h和.gl两个文件, 即Robot.h和Robot.gl。
在3DS文件中, 我们最关心的是如何得到模型上各个点的坐标, 并且用这些点连成三角形构成面, 进而绘制成整个模型。3DS文件结构的定点列表块定义了定点的数目和每个定点的三维坐标, 采用调用显示清单的方法显示机器人。定义显示列表的代码如下:
g1NewList (nList, mode) ;
switch (nList)
{
case1:Barl () ;break;
case2:Bar2 () ;break;
}
glEndList () ;
在调用上述定义好的显示列表时, 只需glCallList (nList) 即可绘制nList所有指代模块。
2模型的渲染及OpenGL工作场景的设置
2.1 模型的渲染
OpenGL中可设置光照、材质、反走样、雾化、融合等渲染效果, 使显示在二维平面上的图像如三维形体一样具有良好的光洁度、一定的纹理和远近层次感。在场景中渲染模型的步骤如下:
(1) 为物体的每个顶点定义法线向量, 这些法线决定了物体相对光源的朝向。
(2) 创建和选择一个或多个光源, 并设置光源的位置, 生成与前面光源定义一致的光源。
(3) 创建和选择光照模型, 它定义了全局环境光的等级和观察点的实际位置 (用于光照的计算) , 代码如下:
Void CRobotView::CreatOrnm[]
{
GLfloat lightAmb[]={0.3f, 0.3f, 0.3f, 1.0f};//设置光照参数, 根据需要还可以设置漫反射和镜面反射等
GLfloat matAmb[]={0.6f, 0.6f, 0.6f, 1.0f};//设置材料对环境光的反射率及光度
glLightfv (GL-LIGHT0, GL-AM BIENT, lightAmb) ;//生成与前面定义一致的光源
glLightfv (GL-LIGHT0, GL-POSITION, lightPos) ;//在前面定义的位置生成光源
glLightModelfv (GL-LIGHT MODEL AMBIENT, lightAmb) ;//定义光照模型为环境光
(4) 设置材质属性, 物质材质属性决定了它如何发射光线, 也决定了物体看起来是由什么材质构成的, 代码如下:
glMateriafv (GL-FRONT, GL-AMBIENT, matAmb) ;
glMaterialf (GL-SHININESS, 100) ;//设置光度值
(5) 对机器人模型进行多重采样的反走样处理, 其步骤为:打开一个支持多重采样的窗口, 如有GLUT库, 可调用函数glutInitDisplayMode (GLUT-DOUBLE| GLUT-RGB|GLUT-MULTISAMPLE) ;打开窗口后, 需要确定它是否支持多重采样, 支持的话就打开多重采样, 调用函数glEnable (GL-MULTISAMPLE) 。
(6) 使用雾化参数GL-FOG调用函数glEnable () 以启用雾效, 并使用函数glFog* () 指定雾颜色和控制雾密度的方程。
(7) 模型顶点颜色和融合的处理, 可用如下代码:
glEnable (GL-BLEND) ;//启动融合处理
glBlendFunc (GL-enmum s, GLenum d) ;//融合操作方法的函数
glDisable (GL-BLEND) ;//屏蔽融合处理
2.2 OpenGL工作场景的设置
2.2.1 Visual C++6.0环境下OpenGL的配置
尽管微软公司已经在其内核中嵌入了OpenGL函数库, 但要使VC++的编译器识别OpenGL函数, 必须在所有使用了OpenGL函数和变量的文件的头部加入OpenGL的头文件。在VC++中做如下设置:①单击Project菜单下的 Settings选项, 选择Link选项卡, 在Object/library modules文本框中加入OpenGL库:opengl32.lib glu32.lib glaux.lib (注意中间是空格, 不是逗号) , 做了如此的设置后, VC++就可以识别和调用OpenGL的实用库和基本库中的函数;②打开工程文件的RobotView.h头文件, 在程序前面加以下语句:
#include
#include
#include
#include
这样工程文件就可以在OpenGL要求的环境下得以顺利编译运行了。
2.2.2 OpenGL像素格式的设置
在创建渲染描述表之前必须创造像素格式, 这样渲染描述表才知道怎样选择像素属性。OpenGL的像素格式与Windows下的格式即VC++默认的格式不同, 因此必须先设定特别的像素格式, 使VC++支持OpenGL的格式。对Pixel Format Descriptor进行了初始化以后, 就可以设置像素格式了, 代码如下:
Int pixelformat;
if ( (pixelformat=ChoosePixelFormat (m-pDC->GetSafeHdc () , &pfd) ) ==0)
{
MessageBox ("ChoosePixelFormat falled") ;
return FALSE;
}
if (SetPixelFormat (m-pDC->GetSafeHdc () , pixelformat, &pfd) ==FALSE)
{
MessageBox ("SetPixelFormat falled") ;
return FALSE;
}
2.2.3 渲染描述表的建立
渲染绘制 (RC) 之于OpenGL, 就犹如设备描述表 (DC) 之于Windows。在渲染描述表存入信息后, OpenGL就可以在Windows系统中更新一个窗口的图形状态。创建渲染描述表, 由函数myfirst () 完成, 具体代码如下:
hrc=wglCreateContext (my-pDC->GetsafeHdc () ) ;//创建
wglMakeCurrent (my-pDC->GetsafeHdc () , hrc) ; //当前化渲染描述表
2.2.4 视点、视景体及透视模式的定义
在OpenGL虚拟现实中, 必须先定义视点、视景体及透视模式才能实现这一功能。通常在OnSize () 函数中来定义, 一旦需要重绘窗口时, 程序自动调用OnSize () 函数, 使重绘前后显示方式保持一致, 从而保证了图形的真实性、连续性。
3驾驶机器人动画效果的实现和仿真实例示意
3.1 机器人动画效果的实现
机器人动画效果的实现采用的是双缓存技术, 调用SwapBuffers () 函数使其成为可见视频缓冲, 同时还需要设置定时器, 周期性地向程序发送WM-TIME函数来刷新实现机器人的动态显示, 其步骤如下:①设置OpenGL窗口显示属性为双缓存机制;②利用OpenGL绘制命令绘图;③绘图结束后切换缓存;④使用计时器控制动画的刷新频率。离合器机械腿动画显示代码如下:
Void CRobotView::OnTimer (UNINT nIDEvent)
{
//添加定时器响应函数和场景更新函数
invalidate (FALSE) ;//显示更新
if (m-IsStartMovie)
{
m-Angle+=m-Joint1;
m-Angle+=m-Joint2;
……
RenderScene () ;
m-Count++;
if (m-Count=MOVIECNT)
{
M-Count=0;
M-IsStartMovie=FALSE;
}
}
CView::OnTimer (nIDEvent) ;
}
Void CStartCAndMDlg::SetClutch (int i, int j) //i=1自动档汽车;j=1 踩离合器;j=2 松离合器;j=3 前半松离合器;j=3 后半松离合器;
{if (i==1)
{ if (j==1)
{ set-base (0x310) ;
pmove (3, 0, 0, 0, 0, 0, 0, 0, 1, cPoint[7].y-cPoint[7].x) ;
do
{ }
while (chkbusy () ==4) ;
}
if (j==2)
{ set-base (0x310) ;
pmove (3, 0, 0, 0, 0, 0, 0, 1, 1, cPoint[7].y-cPoint[7].x) ;
do
{ }
while (chkbusy () ==4) ;
}
if (j==3)
{ set-base (0x310) ;
pmove (3, 0, 0, 0, 0, 0, 0, 1, 1, (cPoint[7].y-cPoint[7].x) /2) ;
do
{ }
while (chkbusy () ==4) ;
}
if (j==4)
{ set-base (0x310) ;
pmove (3, 0, 0, 0, 0, 0, 0, 1, 0, (cPoint[7].y-cPoint[7].x) /2) ;
}
}
}
该函数用于对离合器的操作, 4个不同的动作为:①踩离合器;②完全放离合器;③从踩下位置半放离合器;④从半放位置完全放开离合器。
3.2 仿真实例示意
利用上述方法可以实现驾驶机器人的运动学仿真。通过输入参数与机器人仿真模型进行交互, 计算机根据输入的数据进行实时计算, 并将计算的数据或结果传递给仿真模型, 再由计算结果驱动仿真图像, 实时显示输入数据对机器人运行的影响, 同时也将与当前仿真相关的数据实时显示出来, 以达到参数化实时动态仿真的目的。这种仿真环境为研究机器人提供了有效的手段。如图1为驾驶机器人离合器机械腿的运动仿真示意图。
4结束语
开发针对驾驶机器人三维运动仿真系统, 弥补了OpenGL自身的辅助库函数只能画简单图形这一缺憾, 引入了机械专业建模软件AutoCAD, 将二者的优点有效地结合起来, 从而使仿真效果更逼真, 场景更震撼。仿真结果为研究机器人机械结构的干涉问题, 了解驾驶机器人的空间工作的形态及大小提供了一种很好的实验手段, 并具有形象而直观的图像, 使仿真从单纯的抽象的数字化仿真中走出来。利用本驾驶机器人及控制环境模型可与远程机器人进行通信, 指挥远程机器人作业, 为远程机器人的控制提供了新的方式。
摘要:为逼真地模拟驾驶机器人的运动过程, 采用AutoCAD强大的建模工具建立了机器人的逼真模型, 通过格式转换导入到OpenGL中, 利用其优秀的场景和实时处理能力对模型进行渲染和着色, 在VC++开发平台上成功地实现对驾驶机器人的可视化运动仿真。
关键词:AutoCAD,OpenGL,实时仿真,驾驶机器人
参考文献
[1]郭兆荣, 李菁, 王彦.Visual C++OpenGL应用程序开发[M].北京:人民邮电出版社, 2006.
[2]Dave Shreiner, Mason Woo, Jackie Neider, et al.OpenGL编译指南[M].徐波, 译.北京:机械工业出版社, 2006.
[3]崔冬.M-6iB型FANUC机器人的三维运动仿真及有限元分析[D].西安:西安理工大学, 2007:26-29.
[4]徐运武.基于OpenGL及3DS MAX的机器人三维仿真实现[D].广州:华南理工大学, 2006:29-34.
驾驶仿真 篇2
关键词:VAPS,仪表仿真,航空仪表
0 引言
随着数字技术在现代航空领域的应用, 作为人机接口的座舱显示仪表已由传统式的机电显示仪表向多功能显示转变, 成为军用和民用飞机座舱中的重要显示设备。
航空仪表仿真技术是飞行模拟器中的重要组成部分, 在飞行模拟器中可采用数字计算机实时图形图像技术在高分辨率监视器上生成数字式图形仪表来仿真飞机驾驶舱中的航空仪表。它必须提供在功能和外观上与真实飞机尽可能逼真的各类仪表, 能实时显示飞行参数、导航参数、电气系统参数、发动机参数等并将其提供给驾驶员和研究人员[1]。
本文将以对某型号民用飞机驾驶舱的航空仪表显示仿真来阐述基于VAPS的驾驶舱航空仪表仿真技术的应用。
1 软件开发平台
本文采用的仪表软件开发平台由Windows XP、Microsoft VisualC++6.0和VAPS6.3组成。VAPS是由加拿大VPI公司研发的用于座舱仪表生成及人机界面设计的软件工具, 可进行快速原型设计、原型构造、性能测试和模拟。它有一个易于目标绘制和模拟的编辑器, 目标可由内部或外部数据驱动, 其提供的CCG Lite工具可以将VAPS的应用生成可独立运行的目标代码 (C代码) , 以便于移植。
2 系统架构
某民用飞机的座舱显示主要包括电子飞行显示系统、发动机指示和机组告警系统。电子飞行显示系统主要由2块主飞行显示器 (PFD) 和2块多功能显示器 (MFD) 、2块显示控制板 (DCP) 、2块光标控制板 (CCP) 和1块转换控制板 (RSP) 组成;发动机指示和机组告警系统的显示部分由1块发动机指示和机组告警系统 (EICAS) 组成, 主飞行显示器和多功能显示器显示驾驶员飞行数据, 发动机指示和机组告警系统显示包括发动机指示、飞机系统状态和机组告警信息。
因此, 需要仿真这5块屏, 以完成为使用人员提供主飞行信息显示、导航信息显示、发动机及其它飞机系统的信息显示功能。
2.1 硬件构架
仿真硬件架构如图1所示, 5块仿真屏分别由5台仿真计算机处理数据生成显示页面, 并在仿真屏上显示, 主控计算机实时计算飞行数据并将需要显示的飞行数据如无线电高度、马赫数等通过以太网发送给仪表仿真的数据收发计算机。数据收发计算机解算所接收到的数据, 通过以太网分别分发给左右主飞行显示 (PFD) 仿真屏、左右多功能显示 (MFD) 仿真屏和中间的发动机指示和机组告警 (EI-CAS) 仿真屏。仿真屏的大小尺寸应尽可能与飞机上的显示屏一致, 其显示功能也应与飞机上显示屏一致。
随着计算机硬件技术的发展, 计算机的硬件CPU和显卡的数据处理能力得到了大幅提高, 也可以通过安装有多块高性能显示卡、CPU和网卡的计算机实时处理收发数据并同时驱动显示多个仿真仪表页面。
2.2 系统实现
本系统的仿真对象包括电子飞行显示仿真系统和发动机指示和机组告警仿真系统。主控计算机中的仿真系统模型输出相关飞行数据, 通过UDP协议传输数据, 并经由数据收发计算机, 发送给仿真计算机。仿真计算机实时处理数据, 实时驱动仿真屏上显示用VAPS软件绘制的页面。
2.2.1 电子飞行显示仿真系统
电子飞行显示仿真系统的主要功能是根据飞行员操作, 给出与当前飞行参数对应的主飞行显示和多功能显示画面, 并控制显示器的画面转换。系统还可以处理设定的故障信息。
使用人员通过接口板卡采集显示控制面板的操作信息进入主机。显示控制软件模块与采集的信息进行交互, 根据显示控制面板的输入和飞行参数、自动飞行控制系统模块的工作方式信号、姿态指令、预选航道航向等计算当前主飞行显示器的显示方式。
2.2.2 发动机指示与机组告警仿真系统
发动机指示与机组告警系统在发动机指示与机组告警系统显示器上显示发动机、电源、液压、燃油、飞行控制等系统参数。
发动机指示与机组告警系统参数软件模块将发动机转速、温度等参数经过数据收发计算机发送给计算机, 计算机生成显示页面并在发动机指示和机组告警 (EICAS) 仿真屏上显示。
机组告警逻辑软件模块接收来自控制面板的告警按键信号, 以及来自其它的告警信号, 并根据告警逻辑, 驱动驾驶舱内显示屏显示CAS告警信息。
2.2.3 软件实现
仿真的LCD屏将显示主飞行显示器、多功能显示器和发动机指示与机组告警显示器中的显示内容, 包括飞机飞行高度、速度、飞行姿态以及发动机转速等, 其显示的图形颜色、大小、形状以及字体的格式、大小应尽可能和真实显示相一致, 其功能也应与真实显示一致。
用VAPS绘制软件开发绘制这些页面的显示内容, VAPS软件自带了很多典型的航空仪表页面的图形, 也可载入相应格式的图片, 生成带有.FRM扩展名的文件, 并对有形状和数据值变化的显示内容设置通道 (Channel) , 通过通道根据具体情况控制图形变化行为。从程序角度来说, VAPS通道可以想象成数据结构, 外部进程能够通过VAPS通道将数据传给VAPS部件进行显示, 从而反映数据值变化。数据收发计算机实时接收主控计算机发送过来的数据, 并根据相应数据结构通过以太网对数据进行分发。各个仿真计算机接收到相应数据进行解算, 并把解算的数据放置到相应通道中驱动仿真屏中仿真页面的实时显示。
通过VAPS软件自带的CCG工具可以将VAPS生成的画面生成二进制代码嵌入到仿真屏或驱动仿真屏的计算机中, 然后通过程序进行实时调用。VAPS软件是用C/C++语言开发的, 因此其代码移植性较好。
3 结语
航空仪表仿真技术是飞行模拟器中的重要组成部分, 其将飞行参数、导航参数、电气系统参数、发动机参数等实时显示并提供给驾驶员和研究人员。实践证明VAPS软件能较好地完成工程模拟器的驾驶舱仪表仿真, 对其它的仪表仿真也有一定借鉴作用。
参考文献
[1]王行仁.飞行实时仿真系统及技术[M].北京:北京航空航天大学出版社, 1998.
驾驶仿真 篇3
关键词:城市地下道路,驾驶模拟,交通安全,道路优化设计
传统道路设计主要依据相关规范、技术标准即可, 受技术手段的限制, 对未来道路运营后实际性能, 如安全性等缺乏预测和足够考虑。随着现代虚拟仿真技术的发展, 驾驶仿真模拟技术采用先进的计算机虚拟现实技术, 将车辆运动系统、视景系统、声音系统、数据采集系统等集成于一体, 给驾驶人逼真的现场实景和车辆运动感, 结合眼动仪等设备, 采集测试驾驶人的行为特性。驾驶模拟技术为道路设计评估预测提供有力的手段。
城市地下道路作为新类型的城市基础设施, 目前在国内外发展较快[1,2], 但其运营安全也越来越引起社会的关注。对于城市地下道路, 在设计阶段充分考虑未来运营安全, 需要先进的技术手段对设计方案进行评估分析[3]。
本文拟在城市地下道路设计阶段引入现代驾驶仿真模拟技术, 应用于苏州星港街地下道路工程, 结合工程实例详细论述基于驾驶仿真模拟技术优化城市地下道路设计。
1 驾驶仿真模拟与评估分析
1.1 项目概况
苏州星港街地下道路位于金鸡湖西岸、苏州中心东侧。总体呈南北走向, 北起苏慕路口南侧, 下穿现代大道、CBD核心区, 在苏惠路南侧接地, 通过地下立交与苏州中心地下环路连接。
道路主线等级为城市主干路, 设计速度50 km/h。全长1 560 m, 其中北侧敞开段100 m, 南侧敞开段130 m, 暗埋段1 330 m。全线最大纵坡5.9%, 设计净空3.2 m, 服务中小客车。地下立交匝道设计速度为20 km/h。总体布置示意图见图1。
1.2 基于驾驶仿真模拟评估分析
基于驾驶仿真模拟评估分析主要步骤包括:根据道路设计基础资料构建初始3D模型, 在此基础上进行3D模型渲染、修饰;设计试验方案, 确定评估目标;仿真模拟与评估分析;反馈设计与方案优化。驾驶仿真模拟步骤流程示意图见图2。
结合星港街地下道路工程, 运用仿真技术开展研究。
1.2.1 3D模型建立
根据星港街地下道路地形、平纵横数据等, 通过软件生成初始3D道路模型。在此基础上, 通过3DMax等软件对初始3D模型渲染、修饰, 形成较为逼真的仿真场景。
1.2.2 试验基本方案
本研究设置5种模拟路径, 每种路径对应各相应的仿真目标。
1) 路径1为主线由北至南方向, 评价主线总体线形, 视距。
2) 路径2为主线由南至北方向, 评价主线总体线形, 视距。
3) 路径3由主线南方向至E3匝道驶入北中心环路。
4) 路径4由北中心环路通过匝道E1汇入主线。
5) 路径5由北中心环路通过匝道E2驶出地面。
1.2.3 仿真模拟与评估分析
通过直观的3D驾驶模拟体验设计方案, 评估分析, 诊断潜在问题。
1) 主观驾驶感受评价。主线 (路径1和路径2) , 通过驾驶仿真模拟, 对驾驶人直观行车感受进行调研。结果表明主线总体线形指标较好, 运行速度连续性较好, 视线诱导连续, 安全隐患不大。匝道 (路径3、路径4和路径5) , 由于匝道E2和E3线形技术标准较低, 最小半径仅20 m, 对于路径3, 由主线南方向至匝道驶入北中心环路, 主线运行速度需要较大幅度的减速。在驶入匝道后, 行驶视距受侧墙遮挡严重, 对前方道路总体线形走向缺乏了解, 驾驶人行驶疑惑感较强, 尤其对于路径4和路径5, 匝道需要分流分别进入地面和汇入主线, 分流出口的识别视距不足, 若缺乏有效的交通标志诱导, 很容易造成驾驶人误行, 交通安全隐患大。
2) 定量化分析。驾驶仿真模拟平台可输出多种车辆运动学指标直接或间接评价道路行车安全性, 本研究选取运行速度协调性和车辆轨迹偏移作为评价指标。其中, 运行速度协调性评价指标已被国内外很多实践证明是有效的评价指标之一[4,5]。
(1) 主线运行速度协调性评价。通过驾驶仿真模拟, 主线2个不同方向的运行速度见图3。总体上主线运行速度较为平缓, 不存在相邻路段运行速度相差>20 km/h情况。但由于主线线形较好, 干扰少, 导致超速现象, 大部分路段速度都>50 km/h (设计速度) , 部分路段运行速度>70 km/h, 即运行速度与设计速度差>20 km/h, 存在主线运行速度与设计速度不协调[6]。
(2) 主线与匝道衔接段运行速度协调性评价。对于路径3, 由主线南方向至E3匝道驶入北中心环路。由于匝道E2和E3线形技术标准较低, 由主线南方向至匝道时, 主线运行速度需要较大幅度减速, 车辆运行速度由60 km/h急速减小至20 km/h (见图4) , 速度协调性差。
(3) 匝道路段运行速度协调性评价。以路径5为例, 匝道路段线形技术标准较低, 总体上运行速度与设计速度相差不大, 协调性较好, 但在运行速度连续性方面, 图5表明车辆运行速度起伏频繁。主要原因是在驶入匝道后, 行驶视距受侧墙遮挡严重, 驾驶人对前方道路总体线形走向缺乏了解, 行驶疑惑感强, 难以维持平稳的运行速度。
(4) 匝道路段车辆的侧向偏移。以路径5为例, 车辆在匝道上行驶, 受线形指标限制和侧墙影响, 除运行速度不连续外, 车辆横向偏移较大 (见图6) , 摆偏移较大, 这与驾驶人转向幅度有关, 跟踪道路中心线轨迹的难度较大。
2 反馈设计与优化
通过驾驶仿真模拟评估诊断出潜在的交通安全隐患路段, 但由于受现有的地下障碍物限制以及工程即将进入实施阶段, 道路主线及匝道的平纵线形已难以优化, 只能通过交通工程措施加以完善。针对上述识别的相对危险路段, 提出相应的安全改善措施。
2.1 主线易超速路段
主线总体线形连续性好, 部分路段未来运营容易引发超速, 对预测的运行速度>70 km/h的路段, 按提高一个等级的设计速度70 km/h, 进行停车视距核算, 能够满足要求, 同时通过设置限速标志等交通设施, 合理控制未来运行的运行速度。
2.2 主线至E3匝道路段
由主线南方向至匝道E3驶入北中心环路, 主线运行速度需要较大幅度的减速, 针对该问题, 为提高出口识别性, 在交通标志设计中, 针对原出口引导标志设置, 提高出口匝道的预告级数至3级, 让驾驶人能够提前变换车道和减速, 通过合理的设置减速振荡标线等与预告标志配合使用。
在进入匝道前先设限速标志、急弯警告标志以及匝道总体平面布置标志, 让驾驶人提前了解匝道总体走向。同时在匝道侧墙上, 设置线形诱导标志, 加强引导行车。
2.3 由北中心环路通过匝道E1和E2分别进入主线和地面的全路段
由北中心环路通过匝道需要分流通过匝道E1和E2进入地面和汇入主线, 由于位于地下, 行车视线受侧墙遮挡较为严重, 分流出口的识别视距不足。通过优化, 在原出口引导标志设置基础上, 增加至3级分流出口预告。
另外, 优化地面标线, 主要包括: (1) 增加路面文字标记, 利用路面文字加强指示, 设置3组出口引导信息的路面文字标记; (2) 增设彩色减速提醒标线, 垂直于行车方向设置, 通过色彩进一步加以区分通向地面和通向主线2个不同方向的车道。图7是日本东京首都中央环状新宿线前方不同出口的引导标志系统设计, 通过完善标线设置与引导标志系统配合使用, 提高出口的识别效率, 降低误行概率, 提高行车安全。
3 结语
本研究将驾驶仿真模拟技术引入城市地下道路设计阶段, 评估分析道路设计方案。以苏州星港街地下道路工程为案例, 对其进行仿真模拟, 诊断识别潜在的安全隐患, 优化设计。驾驶仿真模拟技术为城市地下道路设计方案的评估分析提供全新技术手段, 这对未来提高城市地下道路设计水平, 推动设计技术理念和手段的创新具有重要意义。
参考文献
[1]罗建晖, 俞明健.上海CBD核心区井字形通道规划暨外滩通道方案[J].城市道桥与防洪, 2010 (9) :20-23.
[2]刘艺.城市地下道路交通组织模式研究[D].上海:同济大学, 2012.
[3]上海市政工程设计研究总院 (集团) 有限公司.城市地下道路设计阶段交通安全评价方法研究[R].上海, 2014.
[4]FHWA, ITE.Road Safety Audits:Anemerging and effective tool for improved safety[R].2004.
[5]游克思, 孙璐, 顾文钧.基于车辆动力学仿真模拟和风险分析的道路危险路段识别[J].东南大学学报, 2012, 42 (1) :150-155.
驾驶仿真 篇4
汽车驾驶模拟器通过模拟真实情况下的行车状态,让驾驶员产生身临其境的感觉,利用相关手段采集实验数据,分析车辆或驾驶员在特定工况下的状态。汽车驾驶模拟器具有安全性高、再现性好、可方便地设定各种条件、经济性高等特点[1]。视景系统作为汽车驾驶模拟器的重要组成部分,直接影响驾驶员对环境的感知,因此建立1个沉浸感强的视景系统,有助于模拟真实情况下的驾驶环境,进而深入的研究“人-车-路”之间的关系。为了提高场景的沉浸感,目前有2类发展趋势[2]:一种是提高单个图形渲染输出通道的视野范围[3,4]。另一种是通过多图形渲染通道并联,使用多个显示器或投影仪拼接成1个更大的视野范围。前者对场地要求较低,适用于需要经常移动的应用场合,后者对场地的要求较高,沉浸感强,适用于对视景要求高的应用场合。目前,国内对这方面进行了比较深入的研究。如浙江大学的校园漫游系统[5];西南交通大学的多通道列车驾驶视景仿真系统[6]等。由于研究型汽车驾驶模拟器对视景系统的要求极高,显然适于采用后者。
为了高效的构建多通道汽车驾驶模拟器视景系统,采用面向对象图像渲染引擎(object-oriented graphics rendering engine,OGRE)三维图形渲染引擎为核心,利用其对OpenGL/DirectX的封装,可以有效降低视景系统的开发难度。
本文讨论了宽视野的多通道汽车驾驶模拟器视景系统设计与实现。首先,设计并实现了1种基于离轴投影(off- axis projection)的视域分配方法,避免了传统多通道系统在通道之间有明显“偏折”的现象。其次,分析了视景系统的同步问题,提出1种可行的同步方法。最后,给出并分析了实验结果。
1 汽车驾驶模拟器总体结构
汽车驾驶模拟仿真系统主要由信号采集子系统、车辆动力学仿真子系统、视景仿真子系统、实验数据采集子系统组成。系统的硬件构成如图1所示。信号采集子系统由1台工控机及相关传感器组成,主要负责采集驾驶员的操作行为。工控机上的信号采集程序首先通过采集卡读取驾驶员的驾驶操作数据,打包后通过以太网发送到服务器。服务器上的车辆动力学子系统,接收来自工控机的驾驶员操作数据,通过车辆动力学仿真模块计算主动车辆(驾驶员控制)的行驶状态并计算视景中自动车辆(计算机控制)的状态。服务器端视景仿真子系统根据计算结果,更新场景中物体状态,然后将动态物体如:交通灯、车辆、可变信息板的位置或状态通过以太网发往各客户端。客户端的视景仿真子系统根据服务器发送的数据更新本地场景。
2 视景仿真系统关键问题
设计视景仿真系统主要有2个关键问题:通道间视域分配和通道间视景同步显示。
2.1 视域分配
视域分配的目的是为了能让使用者看到更大的范围。对于汽车驾驶模拟器,视景显示系统是用来模拟真实情况下驾驶员所见到的环境,因此在设计各通道间视域分配时,所有通道的视点位置必须相同(大致为驾驶员头部在虚拟场景中的位置),视景的图像在各通道之间必须平滑过渡。
一般的多通道系统(以3通道为例)对视域采用旋转视锥体的分配方式,如图2所示。首先利用视锥体的纵横比和视点到近剪切面的距离,计算出主通道的水平视野α,然后将视锥体以摄像机的y方向为轴,逆时针旋转α角,即为左通道的视域。同理,顺时针旋转α角,即为右通道的视域。
如果将以上方法生成的图像投影到平面或弧形幕上,则会在通道的交界处产生明显的“偏折”,如图4(a)所示。分析过程如下:
如图2(b)所示,设PQ是平面AOB上的一条线段,平面BB′DD′为平面ABCD的延伸,OP交平面ABCD于G点,OQ分别交平面BDEF、BB′DD′于N、M点。由透视投影原理可知,直线PQ在主通道上的投影为线段GB,在右通道上的投影为线段BN。显然,GB和BN不在1条直线上。若将各通道所产生的图像投影到1个平面或弧面上,则PQ在主通道和右通道图像的交界处会发生“偏折”。
为解决以上问题,本文提出1种基于离轴投影的视域分配方法。整个视域由1个对称的视锥体(正投影),2个不对称的视锥体(离轴投影)组成,如图3所示。要实现离轴投影,关键是计算该通道视锥体的投影矩阵。
设整个视域的水平视角为θ,视点到近剪切面的距离为h,视点到远剪切面的距离为f,剪切面的纵横比为k,AC和BD将矩形EFGH分为3等份。
令AB=EA=BG=s,EF=AC=BD=GH=v,则:
s=(2/3)htan(θ/2), v=(2/3)htan(θ/2)/k
对平面EFGH建立二维坐标系,则由以上计算可得A、B、C、D、E、F、G、H的坐标分别为:A(-s/2,v/2),B(s/2,v/2),C(-s/2,-v/2),D(s/2,-v/2),E(-(3/2)s,v/2),F(-(3/2)s,-v/2),G((3/2)s,v/2),H((3/2)s,-v/2)。
若要使各投影通道边缘不产生明显的拼接痕迹,则必须在生成图像源时让各通道产生的图像有一定比例的重合。为使图像有一定的重合,则主通道的近剪切面应由平面ABCD扩展至A′B′C′D′,左通道的近剪切面由平面EFAC扩展至E′F′A″C″,右通道的近剪切面由平面BDGH扩展至B″D″G′H′。令重合区域占该通道像素的比例为e(0<e<1),A′B′=E′A″=B″G′=L,E′F′=A′C′=A″C″=B′D′=B″D″=G′H′=V则按照几何关系建立方程有
解方程组得
。由上可得E′、A′、A″、B″、B′、G′、H′、D′、D″、C″、C′、F′的坐标。
将以上坐标代入透视投影矩阵
式中:r、l、t、b为近剪切面的左下角和右上角的坐标值;n和f为视点与近剪切面和远剪切面的距离。可求出各通道的透视投影矩阵。最后利用Ogre自带函数SetCustomProjectionMatrix可以方便的设置各通道的投影矩阵。
若要将图像投影到弧形屏幕上,还需利用融合机,将各通道的输出图像进行非线性几何校正、边缘融合以及颜色校准,鉴于篇幅限制,本文就不对以上处理进行深入阐述,文献[7,8]对上述方法进行了探讨。
以上2种方法的效果对比图如图4所示,传统方法存在的明显偏析问题用箭头标出。
2.2 视景同步
2.2.1 视景同步问题分析
视景同步是多通道系统中另一个关键问题,它直接关系到视景系统的显示效果。视景同步主要是通过同步各通道中的变化对象[8](如:车辆,交通灯等),来达到各通道显示上的一致。
造成各通道显示不一致的原因主要有以下几点:
1) 各通道中计算机的软硬件处理能力存在差异。
2) 操作系统任务调度顺序无法保证一致。
3) 每个通道在进行渲染时的负载(渲染的面的数量)不一致。
4) 网络延时。
由于存在以上不同步的因素,在设计视景系统时不能让主机发送完数据后就立即开始渲染,客户机也不能接受数据后马上开始渲染,而是要在各通道间建立一种同步机制,消除或减少上述因素的影响。
2.2.2 同步数据格式
要实现同步,首先要确定需要同步的信息。对于汽车驾驶模拟器而言,需要同步的信息主要有:交通灯数据、车身数据、车轮数据(位置和朝向)、车灯数据、相机(视点)数据、行人等信息。考虑到以上数据量不大,而且发送的频率比较高(至少25次/s),因此采用UDP传输协议比较适合。同步信息的报文格式如表1所列。
2.2.3 同步流程
各通道间同步的具体流程如下:①首先建立从机与主机之间的连接,然后每个从机对主机进行Ping操作,记录主机相对于从机时间的延时t;②从机在准备好之后,向主机发出就绪信号;③主机接收到所有从机的就绪信号之后,将需要同步的信息广播给每个从机;④从机在收到同步信息后,立即向主机发送确认信号,更新场景数据,并在等待t/2时间之后开始渲染,渲染完成后向主机发送就绪信号;⑤主机收到所有从机确认信号后立即开始渲染;⑥循环执行步骤③~⑥,直到收到结束命令退出。
3 实验结果及分析
构建多通道汽车驾驶模拟器视景仿真平台,硬件部分采用3台图形工作站、3台投影仪、1台1 000 m交换机、1台图像校正融合机,软件部分采用Windows XP操作系统、Ogre 1.45图像渲染引擎(使用OpenGL渲染模式)。实验用场景有220 000个三角面,需同步的对象包括54个交通灯、30台车辆(每台车有4个车轮、4个车灯)、1个摄像机。图5(a)是在上述条件下,3个通道在第3 000~3 200帧的相邻2帧间隔时间。由该图可知,2帧之间的最大时间间隔小于4 ms,即同1帧在不同通道渲染时间小于4 ms,低于人能察觉的最小2帧间隔(40 ms),因此各通道之间不会产生可察觉到的不同步现象。经过实际测试,本系统的平均帧率为55.6 帧/s,完全满足应用需要。
通过投影仪将各通道图像投影到弧形屏幕上,实验效果截图如图5(b)所示。实验结果表明,本文提出的汽车驾驶模拟器视景系统设计方案,可以有效的增强视景系统的沉浸感,满足汽车驾驶模拟器对视景部分的要求。
4 结束语
视景仿真系统是整个汽车驾驶模拟器的关键部分,直接影响整个系统的实现效果。本文首先对常用的多通道视景设计方案进行了分析,在此基础上提出了1种基于离轴投影的视域分配方法,然后讨论了视景同步问题,针对该问题提出了1种可行的视景同步方案。实验证明,本文提出的视域分配方法和视景同步算法,可以很好的满足汽车驾驶模拟器关于视景系统的要求。
由于以上设计主要运用于汽车驾驶模拟器这一特定领域,因此某些设计在通用性上有所欠缺,如将该视域分配算法应用在极大视角(150°以上),则在通道边缘会出现变形,该问题的解决方法将在下一步工作中进行探讨。
参考文献
[1]丁立,熊坚,陈泽林,等.面向人-车-环境系统的汽车驾驶模拟器的开发和应用[J].公路交通科技,2002,6(19):160-163
[2]王炜,徐玮,崔宏辉.宽广视野虚拟环境漫游的设计与实现[J].计算机工程与设计,2007,28(9):2107-2109
[3]Funkhouser T A.Ring:A client-server system formulti-user virtual environments[C].ACM SIG-GRAPH Special Issue on 1995 Symposium on Inter-active 3D Graphics,(Monterry,CA),1995
[4]Singh G,Serra L,Png W,et.al.BrickNet:a softwaretoolkit for network-base virtual world[J].Presence:Teleoperators and Virtual Environments,1994,3(1):1-3
[5]杨建,石教英,林柏伟,等.PCCAVE:基于联网PC的廉价CAVE系统[J].计算机研究与发展,2001,38(5):513-518
[6]苏虎,周美玉.高速列车模拟器的视景仿真与建模[J].系统仿真学报,2001,13(5):588-591
[7]Raskar R.Immersive planar display using roughlyaligned projectors[C]//Proceedings of IEEE Virtu-al Reality 2000:New York,USA,2000
驾驶仿真 篇5
驾驶员模型在汽车操纵稳定性评价及智能车辆研究中具有重要地位,但驾驶员模型应用于低速仿真时还存在一些问题,本文拟在驾驶员模型在制动到零的仿真应用中做些研究工作。
1 驾驶员模型简介
预瞄-优化人工神经网络驾驶员模型[1](以下简称POSANN模型)的基本框图如图1所示。
POSANN模型具有模型结构清晰,理论基础完备,轨迹跟随精度高等特点,广泛地应用于汽车操纵稳定性仿真与人—车闭环系统评价之中,其中:
w1:预期轨道信息输入的权值;
w2:汽车位置信息输入的权值;
w3:汽车侧向速度信息输入的权值;
w4:汽车侧向加速度信息输入的权值;
Th:驾驶员模型惯性延迟时间;
td:驾驶员模型神经延迟时间;
Tp:驾驶员模型预瞄时间。
2 驾驶员模型参数的确定
2.1 预瞄-跟随系统的基本理论
根据预瞄-跟随系统的基本理论[2],任何一个预瞄-跟随系统都可以简化为由一个预瞄器与一个跟随器所组成的系统,即如图2。
人-车闭环系统等效框图如图3所示。
因此驾驶员根据汽车状态所决策的方向盘转角为:
式(1)中:
等效模型参数与两自由度模型参数之间的关系如下式所示(忽略S的高阶项):
将POSANN模型应用到复杂车辆模型中时,需要进行复杂车辆模型与两自由度模型等效[3],方法如图4所示。
对于复杂车辆模型与两自由度模型输入相同的方向盘转角,以输出的侧向加速度在时间域上的偏差平方积分最小为目标进行参数辨识,在得到模型参数T1、T2、Ty1、Ty2之后,计算等效模型参数Tq1、Tq2进而计算Tp、K0、w33、w44。
2.2 驾驶员模型参数与车速的关系
不同车速下,等效模型参数Tq1、Tq2与车速Vx的关系如图5与图6所示,侧向加速度稳态增益如图7所示,驾驶员模型预瞄时间如图8所示。
与图5~图8对应的仿真数据如表1所示。
由图5~图8及表1可见,当汽车行驶速度小于20 km/h后,驾驶员模型的预瞄时间变为负值,相当于驾驶员由原来的“向前预瞄”变为“向后预瞄”,导致驾驶员模型在预瞄点搜索过程中寻找不到预瞄点位置,导致仿真终止。当汽车行驶速度小于20 km/h后驾驶员模型的预瞄时间变为负值是导致POSANN模型不能进行低速及制动到零仿真的根本原因。
由式(4)可知,低速时等效模型参数Tq1小于零导致预瞄时间Tp小于零,参数Tq1与驾驶员模型的神经延迟时间Td、惯性延迟时间Th有关,因此通过适当延长驾驶员模型的延迟时间可以达到增加参数Tq1从而使预瞄时间其大于零的目的。
当制动时车速到零以后,车速V将在零附近波动,会出现车速V小于零的情况,同样会导致预瞄距离pre_dis小于零,此时应将用于计算预瞄距离的车速加上绝对值,则预瞄距离与预瞄时间的关系变为:
通过上述两种方法可以保证驾驶员模型的预瞄距离始终大于零,从而解决驾驶员模型在低速仿真及制动到零仿真中的应用问题。
3 POSANN模型在制动到零中的仿真结果
将POSANN模型接入CarSim软件进行制动到零仿真,仿真工况设置为汽车以100 km/h的初始车速直线行驶,1 s时驾驶员采取紧急制动直到汽车完全停止,驾驶员模型始终参与控制,仿真结果如图9~图11所示。
当使用POSANN模型进行制动到零仿真时,为了避免驾驶员模型在低速时预瞄时间变为负值,采用如下的处理方法,当行驶车速小于30 km/h时,另车速等于30 km/h,使得驾驶员模型在车速小于30 km/h后其响应特性维持在与30 km/h相同的水平。
4 仿真结果验证
4.1 直线制动到零的仿真结果
仿真工况设置为汽车以100 km/h的车速直线行驶,1 s时驾驶员采取紧急制动直至车速为零,仿真结果如图12~图14所示。
4.2 转弯制动到零的仿真结果
仿真工况为汽车以100 km/h的车速沿半径R为400 m的弯道行驶,10 s时驾驶员采取紧急制动直至车速为零,仿真结果如图15~图17所示。
由仿真结果可见,实现了POSANN模型在制动到零仿真中的应用。
4 结论
预瞄-跟随系统的基本理论与误差分析方法是确定驾驶员模型参数的理论基础[4],当在低速下进行两自由度模型与复杂车辆模型等效时,所得到的驾驶员模型预瞄时间变为负值,导致驾驶员模型在预瞄点搜索过程中寻找不到预瞄点的位置,导致仿真终止。采用低速等效的方法有效地解决了驾驶员模型在低速仿真中存在的问题。
参考文献
[1]刘涛.两种驾驶员方向控制模型的比较与研究.吉林:吉林大学硕士学位论文,2007
[2]万芳.用于汽车操纵稳定性评价的神经网络驾驶员模型.吉林:吉林大学硕士学位论文,2006
[3]程颖.基于误差分析法的驾驶员模型及其在ADAMS中的应用.长春:吉林大学硕士学位论文,2003
【驾驶仿真】推荐阅读:
疲劳驾驶驾驶时长制度06-06
驾驶员安全驾驶操作规程09-03
驾驶员安全驾驶承诺书12-22
机动车驾驶人安全驾驶证明08-18
驾驶试题12-16
无人驾驶10-20
飞行驾驶01-21
安全驾驶05-19
驾驶技巧06-27
自动驾驶07-09