小车寻迹过程的虚拟实现

2015-12-25 08:01朱玲于颖张宝泉王丽婧陈延
软件 2015年7期
关键词:虚拟现实

朱玲++于颖++张宝泉++王丽婧++陈延哲

摘要:针对小车寻迹研究的传统方法中存在的研发成本高、开发周期长的问题,提出了一种虚拟实现方法,在Visual Studi0 2010开发环境下完成对小车寻迹过程的动态模拟。利用OpenGL对小车寻迹场景、小车及轨迹线进行了虚拟建模;依据坐标匹配的原理,实现小车在虚拟环境下的预设直线轨迹与曲线轨迹的寻迹仿真。意在从视觉上为机器人控制系统的研究提供一种动态仿真的工具,并进一步为控制系统参数调整及性能指标的分析提供新的研究思路。

关键词:虚拟现实;场景建模;动态仿真;小车寻迹;轨迹线

中图分类号:TP391.9

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.07.002

0 引言

小车自动寻迹行驶是汽车智能化的一个发展方向,对无人驾驶技术的研究具有重要的意义。目前,实物小车的寻迹控制一般采用装载于小车上的光电传感器识别白色路面上的黑色轨迹线,借助单片机控制器对检测信号进行分析与处理,从而控制转向舵机和驱动电机实现小车的寻迹行驶。但是这种小车寻迹过程对周围环境要求较高,过大的干扰会影响传感器的感应和信号的传输,尤其在无人驾驶技术研究中可能遇到复杂的路况,对被控对象的数学模型及控制算法也提出了更高的要求,需要在实际应用前反复验证。由于此类研究是基于设计.实验.修改.再实验的多次反复模式,而有些实验几乎是破坏性的,这便使得此类研究的难度更大、成本更高。因此研究一套小车寻迹过程的虚拟仿真系统,将系统各方面的验证先通过软件仿真的方式实现,然后再运用到实物小车中,必定会节约成本、提高试验成功率。目前针对此类问题研究的仿真软件多是基于Matlab的控制算法的仿真试验,通过仿真得到的数据或数据曲线来评价算法的有效性,具有一定的抽象性,若能结合虚拟现实技术在视觉上虚拟小车的实际寻迹过程,再结合数据分析,那将为小车寻迹问题甚至是未来汽车智能化研究提供一种新的实验方法。

本文正是在此背景下,开发了一套小车寻迹过程的可视化仿真系统,不但能实现上述数学模型仿真功能,还增加了对实际环境的虚拟,可以直观地展示小车寻迹系统的控制效果。

1 虚拟小车寻迹原理及实现方案

1.1 小车寻迹原理

本文是完全基于软件的虚拟实物仿真,虚拟小车的寻迹原理是通过坐标点匹配的方法实时地校验小车模型的位置坐标点与虚拟空间中预设轨迹坐标点的匹配情况,当小车运动到指定的轨迹坐标点的时候,通过程序判断此刻小车寻迹正确,程序自动运行;当小车偏离轨迹时,设置程序通过坐标偏差自动调整小车前行方位,回到轨迹上来。

1.2 基于VS 2010的控制方案

本系统控制任务为小车能够按照指定轨迹运行,实现自主前进和转弯。在VS 2010.NET环境下,利用C#语言编译控制程序。程序实现的的主要思路是依据坐标匹配的寻迹原理,首先将小车模型的中心点设为小车位置坐标点,轨迹线上的坐标点设为固定参考点,利用循环语句,判断小车行进时是否与固定轨迹线上的坐标匹配,若判断结果为匹配则小车继续前行,若判断结果不匹配,则通过控制算法程序依据两者坐标偏差校正小车位置,从而达到小车寻迹的目的。借助计算机仿真可以轻松设置各种寻迹任务,不同轨迹线的寻迹原理相同,本文设置了直线轨迹GJ1和圆形曲线轨迹GJ2,在WinForm控件的任务窗口模式下,将GJ1和GJ2两条轨迹定义为初始的文件源,小车起始位置为虚拟场景的坐标原点,程序控制方案如图1所示。

2 小车寻迹虚拟场景建模

虚拟小车寻迹过程的重要环节就是编程实现,主要包括场景仿真、小车建模、轨迹线绘制三部分。

2.1 仿真场景的建立

小车寻迹主要在平整地面上完成,虚拟地面位于三维空间,具有深度信息,是小车寻迹的平台。绘制地面为空间正方形平面,四个顶点空间坐标为(-lOOf, Of,-50f);(lOOf, Of,-50f);(lOOf, Of, lOOf); (-lOOf, Of, lOOf)。调用OpenGL函数GL.glColor3f(),设置当前地面的颜色为深棕色,为了方便之后的小车寻迹,这里设置正方形地面的其中一个边为空间坐标系的X轴,并设置X轴为红色,参考坐标起点为(-lOOf, Of -50f),终点为(lOOf, Of -50f);对于Y轴,设置为绿色,默认参考坐标起点为(-lOOf, Of,-50f),终点为(-lOOf, 200f -50f)。仿真界面同时设有“开始寻迹”、“重置”等按钮,用于整个虚拟系统的基本控制动作。场景模型如图2所示。

2.2 小车建模

小车的建模是多种多样的,可以借助3D MAX软件建立各种逼真的小车模型,然后将绘制好的小车导人到仿真环境下即可。利用OpengGL函数也可建立较为逼真的小车模型,但要比3DMAX的绘制过程更为复杂。由于本文是对虚拟小车寻迹过程的初步研究,意在为读者提供此类问题研究的新方法,所以本文用简单的长方体模型模拟车体,并绘制简单的圆形轮胎,完成后续的寻迹演示。

首先设置长方体八个顶点的三维坐标及车轮中心坐标,调用OpengGL中长方体及圆形绘制函数完成小车几何模型的简单绘制。然后对此模型进行颜色填充和光照处理,增加小车模型的立体感。经过几何模型的绘制和外观渲染后,模型效果更佳逼真,如图3所示,同时将小车调整到参考坐标的原点。

2.3 轨迹线的绘制

采用与路面颜色有明显差别的线条作为小车行驶的预设轨迹线(或称为引导线),寻迹小车能够自动检测不同的轨迹线并自动校正行驶偏差。本仿真系统设置两种轨迹线:直线轨迹GJ1和圆形曲线轨迹GJ2。为便于观察,将直线轨迹的绘制位置设置在X轴上,由如下数学公式生成上述两种轨迹线:

k(s)=axs+b

(1)

其中,s表示距离起点的长度,k(s)表示s处的曲率,默认直线时k(s)为0。

对上式积分得到一点在此处的切线与X轴的夹角

对上式积分得到的相应的坐标点

当线形为直线时,k(s)=0,则a,b都为0,故有

当线形为圆形曲线时,k(s) =l/rad,a=0,b=l/rad故有

以上就是直线和圆形曲线基于局部坐标的数学公式,任何的直线、曲线都可以将上述的坐标经过平移、旋转后得到。

3 寻迹过程虚拟实现

选择直线和圆形曲线两种轨迹线,依据上述坐标匹配的寻迹原理,即小车中心位置坐标与预设轨迹线的坐标的匹配情况,实现小车的寻迹控制。

寻迹开始前首先选择轨迹线(引导线)类型,然后点击左侧的控制操作栏中“开始寻迹”后,虚拟小车启动运行,检测轨迹线坐标,修正小车位置坐标,直到小车到达指定终点位置,程序结束,小车停止在终点。“重置”按钮的功能是调用控件中的终止命令,此时系统回到初始状态,小车回到原点,等待新的寻迹指令。

3.1 直线轨迹的寻迹过程模拟

在对小车进行直线寻迹控制之前,首先对坐标匹配的步长进行设置。当直线轨迹长度为50个单位时,设置其坐标点的间距为5个单位,这样可以使每一步寻迹动作的时间适度,动画效果更加真实、连贯。当小车位置参考点与轨迹线上的第一个坐标点匹配一致的时候,利用程序判断语句来控制小车的下一步运动,保证小车沿着预设轨迹前行,图4为小车直线寻迹的仿真效果图。

3.2 曲线轨迹寻迹过程模拟

曲线轨迹选择具有代表性的圆形轨迹线,从原点先引一条直线轨迹,在直线轨迹中段进入圆形轨迹线,选择小车的转弯方向是右转弯,计算公式为:

小车接收到曲线轨迹的寻迹指令后,运动小车在直线与圆的交点处自动识别曲线轨迹线并驶向曲线轨道,寻迹过程的虚拟实现效果如图5所示。

4 结论

基于虚拟现实技术实现了对小车寻迹过程的动态仿真,为此类为问题的研究提供了一种研发成本低、开发周期短,视觉表现力强、控制可靠性高的仿真平台。由于本文寻迹控制是比较基础的研究,因此还存在着虚拟场景单一、小车模型粗糙等问题,可在下一步研究中结合3dmax软件,虚拟更加符合实际车辆运行环境的场景及逼真的车型。此外,可以对系统进一步扩展应用于机器人轨迹跟踪控制、避障控制、多机器人协调控制等的算法研究及控制效果的虚拟演示,使研究者不必花费任何物质资源就能够直观地看到抽象算法的视觉控制效果,并对真实环境可能出现的问题进行预测和处理,这不但将枯燥的理论研究转化为鲜活的图形图像信息,同时也为实际系统的测试提供了新的解决方案,因此小车寻迹过程的虚拟具有重要的研究价值。

猜你喜欢
虚拟现实
论虚拟现实艺术的“沉浸”
REALITY BITES
虚拟现实产业进入高速发展期
虚拟现实技术向科幻小说借灵感
虚拟现实:另一个真实世界
诺基亚推出虚拟现实摄像机OZO
虚拟现实炫酷来袭走出实验室坎坷漫长
浅谈虚拟现实