首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 专业文献>>正文
基于OpenGL的汽车转向三维模型设计
2015年11月26日    评论:    分享:
    来源:第三维度
    作者:陈家琪,曹晨光
    单位:上海理工大学计算机与电气工程学院

    摘要: 汽车转向过程轨迹的计算比较复杂,需要使用汽车动力学诸多公式进行复杂的数学建模。汽车 3D 虚拟系统实时性要求较高,因此对汽车转向模型进行简化,同时控制汽车轨迹的误差。使用 OpenGL 设计汽车三维模型,通过估算横摆角速度得出简化的转向轨迹模型。据此设计汽车转向三维动画,实验结果表明汽车轨迹和姿态都取得了较好的可视化效果。

    汽车模型设计有着广泛的应用。汽车电子控制系统如 ABS、ESP 等性能测试平台需要建立汽车模型,虚拟驾驶系统和汽车 3D 虚拟系统需要建立汽车模型和运动轨迹模型。

    汽车性能测试平台、虚拟驾驶系统等研究性应用要求建立严格的数学模型,用户的输入通过传感器等硬件设备传入系统,可以提出特定的要求,如安装 Matlab 等软件和一些板卡等硬件。汽车 3D 虚拟系统对实时性和交互性要求较高,因此必须进行汽车模型和轨迹模型的简化,同时必须控制汽车姿态和轨迹的误差,为汽车碰撞检测和地形匹配提供有效的数据。

    OpenGL 是数百个函数的集合,提供了图形硬件接口,光照、雾化、反走样、纹理等渲染技术的应用可以获得较高的真实感 [1]。同时可利用 Windows 定时器等机制实现动画,通过消息机制实现与用户交互。显示列表等性能优化技术提高了运行效率[2]。因此在 3D 虚拟系统开发中广泛应用。

    1 汽车三维模型

    1.1 OpenGL 三维模型的一般形式

    OpenGL 的函数库中有许多绘图函数用于绘制基本图元和各种几何体,还可以导入其它工具制作的三维模型。通过基本图元、几何体、基本模型的组合和变换,形成目标模型。

    设制作一个三维模型需n个基本模型,定义操作序列P=M1(O1)M2(O2)…Mi(Oi)…Mn(On)。Oi 为要绘制的第 i 个基本模型,可以是基本图元、几何体、其它工具制作的基本模型,也可以是一个操作序列。Mi(Oi)为绘制 Oi 之前的一系列矩阵操作。Mi=C1×C2×……Cm。Cj( j=1,2,…,m) 为基本模型变换操作,以 4×4 的矩阵表示。 

    OpenGL 中连续两个模型变换一般不可交换顺序,模型变换的执行顺序和函数调用顺序相反。OpenGL 是一个状态机,绘制 Oi 时还受一系列模型变换 M1M2…Mi-1 的影响。令Mi=(MjMj+1…Mi-1)-1C,恢复到 Mj(j=1,2,…,i-1)状态后,再执行模型变换 C 和基本模型的绘制。

    使用 C=R{θ,0,0,1}表示绕 Z 轴逆时针旋转 θ,C=R{θ,0,1,0}表示绕 Y 轴逆时针旋转 θ,C=R{θ,1,0,0}表示绕 X 轴逆时针旋转 θ。使用 C=T{x , y, z}表示沿 X 轴正向平移 x 单位,沿Y 轴正向平移 y 单位,沿 Z 轴正向平移 z 单位。使用 C=S{x, y, z}表示沿 X 轴方向缩放 x 倍,沿 Y 轴方向缩放 y 倍,沿 Z 轴方向缩放 z 倍。

    1.2 基于 OpenGL 的汽车三维模型

    汽车组成十分复杂,只能抽取其中一部分进行建模。由于只关注汽车的姿态和运行轨迹,忽略质量、悬挂、发动机等。汽车三维模型由车身、底盘和四个车轮组成。

    车身安装在底盘上,其位置和姿态由底盘决定,和底盘的位置是相对固定的,三维模型建立时和底盘作为整体考虑。车身的绘制使用 Bézier 曲线和曲面完成。

    四个车轮转速、方向决定了汽车的位置和姿态,由用户通过键盘、鼠标等输入。模型在转向过程中主要考虑轮子质心的位置和速度,不考虑风阻、摩擦、滑移率等因素,轮子转速与汽车线速度成正比,前轮转向角完全决定汽车转向。

    汽车规格主要包括轮距、轴距。轮距即两个前轮(后轮)质心的距离。轴距即汽车前后两根轴之间的距离。根据汽车规格,确定其相对位置,从而使用模型变换制作出相应的三维模型。四个车轮和汽车相对位置关系如图 1 所示。 


图 1 汽车相对位置关系

    其中,Z 轴垂直纸面向外。W 为轮距,L 为轴距,C 为汽车质心,D 为汽车后轴中点。β 为车身到 Y 方向的夹角。P1、P2、P3、P4 为轮子质心,也是前后轴的顶点,θ 为轮子转向与车身正前方的夹角。同时需要另外考虑轮子的转动,设 Pi 绕 X 轴转动的角度为ϕ i。

    由图 1 得到制作基本汽车模型的步骤 P=M1(O1M2O2M3O3M4O4M5O5);其中 O1:车身和底盘;O2:轮子 P4;O3:轮子 P3;O4:轮子 P2;O5:轮子 P1;变换矩阵为:

    M1=C1×C2; M2=C3×C4;

    M3=M2-1×C5×C6; M4=M3-1×C7×C8×C9;

    M5=M4-1×C10×C11×C12;

    其中:

    C1=R{-β, 0,0,1}; C2=T{Cx,Cy,0}; C3=R{ϕ 4,1,0,0}; C4=T{W/2, -L/2,0};

    C5=R{ϕ 3,1,0,0}; C6=T{-W/2, -L/2,0}; C7=R{ϕ 2,1,0,0}; C8=R{θ,0,0,1};

    C9=T{-W/2,L/2,0}; C10=R{ϕ 1,1,0,0}; C11=R{θ,0,0,1}; C12=T{W/2,L/2,0};

    若 Oi 的绘制过程进行了模型变换,绘制完毕后必须进行逆变换,消除后续模型的影响。汽车模型建立完毕后,使用三投影技术获取实现汽车模型运动视景,获得良好的沉浸感[3]。

    2 简化的转向轨迹模型 

    2.1 基本假设

    汽车转向系统是一个闭环系统,除考虑前轮转角外,汽车高速行驶时存在“侧偏”现象,还有诸如转向悬挂系统弹性、侧倾转向效应、车轮倾斜效应、空气动力学影响等因素[4]。对于虚拟系统而言,在不损害真实感的前提下,需要对转向过程进行简化。为此进行以下假设:

    假设 1:汽车低速行驶,服从阿克曼几何原理。汽车转弯半径如图 2 所示。

图 2 汽车转弯半径定义

    根据转弯半径定义有:

     R=L/tanθ          (1)

    在转弯过程中四个轮子质心的速度成比例关系,比例系数与汽车规格和前轮转角大小有关。设 P4 轮绕质心转速为 ω4,质心速度为 v4;P3 轮绕质心转速为 ω3,质心速度为 v3;则有:

    

    假设 2:滑移率为 0。滑移率是在车轮运动中滑动成分所占的比例,滑移率为 0 表示汽车进行纯滚动,即在汽车加速和减速过程中不考虑滑动因素。

    汽车直线运动时认定四个轮子转速 ω 相同。从而,轮子质心速率 Vw=ωr,r 为轮子半径。

    设在时刻 T,汽车车身方向到 Y 正向夹角为 β(Y 正向到车身的夹角为-β),汽车后轴中点 D 坐标为 (xd, yd, zd) ,则汽车沿直线运动经过 ∆T 后 D 的坐标为:

    

    式(3)中 ω 为车轮绕其质心转速,是时间 t 的函数,r 为车轮半径。

    2.2 转向轨迹计算

    汽车在转向过程中做圆周运动,轨迹计算关键在于确定圆心位置、转弯半径和横摆角速度。圆心位置和转弯半径可以根据图 2 计算,横摆角速度的计算是要解决的关键问题。

    由于没有建立精确的数学模型,只能对横摆角速度进行估算。横摆角速度的估算方法有基于运动学模型的估算方法和基于动力学模型的估算方法。N. Sivashankar 使用两个加速计和一个转向角传感器进行了估算[5]。程晓懿对当前的估算方法进行了分析和对比[6]。基于一组轮速信号估算的公式如下:

    

    式(4)中 ω1 为后轴的转向外侧轮转速,ω2 是转向内侧轮转速;r 为车轮静态半径;θ为前轮转向角;W 为后轴轮距。根据前面两个假设,式(1)、式(2)代入式(4),得: 

    

    由式(5)可知给定 θ,横摆角速度的估算值与车轮转速成比例关系。设时刻 T,汽车车身方向到 Y 轴正向夹角为 β,后轴中点 D 坐标为 (xd, yd, zd) 。则经过 ∆T 后 D 点坐标为:

    

    其中ϕ 是 ∆T 后汽车车身方向到 Y 正向夹角,假设 θ 在 ∆T 内不变,从而圆心坐标不变。

    2.3 OpenGL 实现汽车三维动画

    使用 OpenGL 实现动画有三种机制:Windows 定时器机制、短接 WM_PAINT 消息机制和事件插入循环机制[7]。Windows 定时器机制实现简单,但是受操作系统计时器分辨率的限制,Windows2000 计时器最佳分辨率为 10ms。采用短接 WM_PAINT 消息机制可以获得较高的优先级。使用事件插入循环可以获得更高的帧效率,但会影响程序的交互性。

    汽车沿直线运动的轨迹和转向轨迹都是连续的,设每隔 ∆t 进行一次汽车各参数的运算和更新场景。前轮转向角 θ 和车轮绕质心转速 ω 由键盘或游戏手柄控制。∆t 间隔内假定 θ和 ω 值不变,式(3)和式(6)的积分形式可以简化为与 ∆t 相乘。实现流程如图 3 所示。


图 3 动画实现流程

    3.实验结果

    使用 VC++6.0 建立基于 MFC 的单文档项目,利用 OpenGL 进行三维建模,制作了汽车三维模型。车身和底盘尚未进行纹理处理。建模可视化结果如图 4 所示。


图 4 汽车三维建模可视化结果

    汽车转向轨迹中转弯直径可由式(1)得出,是后续计算的基础。为此采集了汽车生产商公布的数据,与式(1)理论计算结果相比较,如表 1 所示。

表 1 最小转向直径对比(单位:m)


    由表 1 可知,式(1)在转向角为 26°时与最小转向直径的误差在 5%左右。在汽车 3D虚拟系统设计、汽车微观仿真中应用是可以接受的。

    4 结束语

    三维虚拟系统中需要许多逼真的模型,不仅建立静态模型时需要真实感,还要求尽可能逼近模型的物理特性和运动特性,同时要具备良好的实时性和交互性。

    本文作者创新点:通过对横摆角速度的估计,对汽车运动学模型进行简化,使用 OpenGL 建立起实用高效、真实感良好的三维模型。同时控制了误差,使得转向模型在不要求精确计算的场合,如微观仿真中得以应用。

    作者:

    陈家琪(1957-)男,上海理工大学教授 研究方向:汽车主动安全性控制

   曹晨光(1984-)男,上海理工大学计算机与电气学院研究生,研究方向:三维建模与可视化

    参考文献:

    1 Dave Astle , Kevin Hawkins. Beginning OpenGL Game Programming[M]. Boston:PremierPress, 2004.

    2 黄海明、刘金刚、易建强. 基于 SDL & OpenGL 的三维游戏优化技术[J] .计算机工程,2007,33 (20):213-215

    3 宋学浩等.一种汽车驾驶模拟器视景的三屏幕实现方法[J].微计算机信息,2008,8-2:51-252

    4 郭孔辉. 汽车操纵动力学[M].长春:吉林科学技术出版社, 1991

    5 N. Sivashankar,A.G. Ulsoy. Yaw Rate Estimation for Vehicle Control Applications [J]. Journal of Dynamic System, Measurement and Control, 1998,6(120): 267- 274

    6 程晓懿.车辆横摆角速度估算方法的研究[J].汽车科技,2008,(1):18-22

    7 宋永军,苏鸿根. VC 环境下 OpenGL 动画的实现方式与特性分析[J].计算机应用与软件,2004,21(4): 102-104 

标签:OpenGL汽车
上一篇:海岛礁及周边复杂环境动态三维建模
下一篇:虚拟膝关节镜手术仿真系统的关键技术研究
网友评论:基于OpenGL的汽车转向三维模型设计
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于OpenGL的汽车转向三维模型设计
·汽车制造业是驱动AR技术发展的原动力
·智能跑步机上虚拟场景的设计与实现
·虚拟现实和3D打印技术帮助福特设计汽车
·曼恒科技汽车虚拟装配技术
·燃料电池动力系统仿真及实时控制平台开发
·基于分布式虚拟现实技术的汽车驾驶模拟器的研究
·雷诺利用超清虚拟现实技术优化车辆
·虚拟仿真技术在汽车行业应用正在兴起
·苹果或为汽车挡风玻璃配战斗机显示技术
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号