掌桥专利:专业的专利平台
掌桥专利
首页

一种模型决策的车辆驾驶方法

文献发布时间:2023-06-19 12:22:51



技术领域

本发明涉及自动驾驶决策技术领域,特别涉及一种模型决策的车辆驾驶方法。

背景技术

汽车已变成人们生活中不可缺少的一部分,而开过车的人都清楚长时间的驾驶车辆会使人特别劳累,而且全凭人们的经验来驾驶车辆时间很不安全的事情。自然而然的车辆的自动驾驶成为人们研究的新的课题。自动驾驶长久以来一直是人们研究的课题,尤其是当涉及队列跟随驾驶,更是人们关心的问题。目前的研究一般都是致力于控制车辆的行驶速度,从而保持与前面的行进车辆固定的安全车距,车辆的转向问题留给人们自己驾驶解决。决策模型是为管理决策而建立的模型,即为辅助决策而研制的数学模型。具体的有线性规则、动态规则、对策论、排队论、存贷模型、调度模型等决策分析方法。它们均是由计算机来完成对问题的数学化和模型化的。采用这样的方法可以大幅度的提高效率。但对较大量存在的非结构化问题的求解和管理决策,就不是单单数学模型所能解决的,而必须考虑人在决策中的重要作用。这涉及到其它许多非理性的学科。故建立数学模型只是决策科学发展过程中的一种方法。

发明内容

本发明的目的在于提供一种模型决策的车辆驾驶方法,通过建立车队并道的试验模型,有效地实现车辆的自动驾驶插入车队的过程。

本发明提供的技术方案为:一种模型决策的车辆驾驶方法,包括如下步骤:

步骤一:当用户使用程序时,先进行车辆模型的建立工作,由用户判断是否输入车队的相关信息;

步骤二:确认后进入输入页面,建立车队的模型,下一步建立将要插入车队的车辆的模型,同样由用户来选择是否输入该车的信息;

步骤三:输入完成后,程序进入演示的界面,展示车队的合并过程,期间将各车的速度信息以及车辆距离路口的距离信息等数据导出到文档中。

进一步地,步骤一中的车队相关信息主要包含车队的速度、车队内车距、车队距路口的距离,由用户判断是否输入这些信息。

更进一步地,步骤二中的该车信息主要包含该车的速度、距离路口的长度、该车的长度,由用户判断是否输入这些信息。

进一步地,步骤二中的建立车队模型由车辆建模(Model)模块完成,该模块主要实现的功能是建立车辆的基本模型,明确车辆的所有属性和所能够实现的效果。

在该模块中定义Car类,主要包括Picture、Speed、Distance、Length和Blank几个变量和Move()函数,其中Picture表示车辆的显示图片,Speed定义车辆的速度,Distance表示车辆距离路口的距离,Length表示车辆的长度,Blank表示车队中车距,Move() 函数提供对车辆的控制的功能。汽车模型的属性调用情况,在车辆控制模块下,对车队和插入车的速度和距离路口的长度进行计算得出谁先到达控制模块通过调整车辆的Speed属性来控制车辆的具体行为。

进一步地,步骤三中的演示界面主要由车道和车辆演示(View)模块完成,该模块主要实现的功能是对车道的背景图片的载入、对汽车模型图片的叠加,以及对车道和车辆的动态处理过程。基本的方法是采用将赛车的图片引入到程序中,在程序运行时自动调运,其实现的过程为:在菜单中插入赛车图片,选BitMap引入需要加载的赛车模型图片。然后通过一个CBitmap类的对象来加载:

CBitmap tempBmp; //定义位图对象

CRect dlgRect; //定义一个区域

GetClientRect(&dlgRect);

tempBmp.CreateCompatibleBitmap(pMainDC,dlg.Width(),dlg.Height());//创建与对话框兼容的位图对象

tempBmp.LoadBitmap('引入资源的ID'); //加载位图

pMainDC.SelectObject(&tempBmp); //选中赛车图片

车道和车辆的演示主要是对图片的动态处理,利用Bitblt() 函数进行图片的绘制,利用定时器实时刷新车辆的图片在车道上的覆盖的坐标。

车道演示中对车道背景图片的处理的实现步骤如下:

一、重置对消息 WM_ERASEBKGND 的处理,以便将位图绘制在窗口的背景上;

二、将重置对消息 WM_CTLCOLOR 的处理,以避免对话框对背景图片造成错误的处理;

三、调整对话框的背景位图绘制在对话框的下面。

进一步地,步骤三中的车队合并主要由车辆模型控制(Controller)模块完成,该模块主要实现的功能是通过计算车辆通过路口的时间来判断,车队的合并时机,既是否需要合并。

当车队到达路口的时间长于车辆到达的时间,是不存在合并的过程的,车辆依旧是采用自身的设定进行驾驶;当车辆到达时间长于车队通过的时间,车辆与车队合并成功,各车不存在速度调整,车队没有完全通过,而将插队车辆到达了路口。由模型控制来处理对车辆的控制的问题,哪辆车应该减速,还是要停止移动,还是要倒退来维持一个可以插入车辆的安全车距。

进一步地,步骤三中的车队合并过程中对车辆信息的数据导出主要指对4辆车的车速的记录和各车距离路口的距离,并将其输出到指定文档中。

其实现过程为:利用计时器,实时的(每隔一秒)产生各车的速度及距路口距离以便以后的分析。通过Fwrite()函数来实现数据的输出,主要是输出到指定的txt文档中既该程序的更目录下的car-data 文件中,从而方便详细地了解关于程序的数据导出细节。

本发明的有益效果:本发明提供了一种模型决策的车辆驾驶方法,首先,当用户使用程序时,先进行车辆模型的建立工作,由用户判断是否输入车队的相关信息。其次,确认后进入输入页面,建立车队的模型,下一步建立将要插入车队的车辆的模型,同样由用户来选择是否输入该车的信息。最后,输入完成后,程序进入演示的界面,展示车队的合并过程,期间将各车的速度信息以及车辆距离路口的距离信息等数据导出到文档中。因此,此发明能够通过建立车队并道的试验模型,有效地实现车辆的自动驾驶插入车队的过程。

附图说明

图1为本发明所述的模型决策的车辆驾驶方法的流程图;

图2为控制车辆的流程图;

图3为从开始的正常运行到最后的合并成功软件界面演示效果。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能后据以实施。

如图1所示,本发明提供了一种模型决策的车辆驾驶方法。

步骤一:当用户使用程序时,先进行车辆模型的建立工作,由用户判断是否输入车队的相关信息,主要包含车队的速度、车队内车距、车队距路口的距离等信息。

步骤二:确认后进入输入页面,建立车队的模型,下一步建立将要插入车队的车辆的模型,同样由用户来选择是否输入该车的信息,包含该车的速度、距离路口的长度、该车的长度等信息。

建立车队模型由车辆建模(Model)模块完成,该模块主要实现的功能是建立车辆的基本模型,明确车辆的所有属性和所能够实现的效果。

在该模块中定义Car类,主要包括Picture、Speed、Distance、Length和Blank几个变量和Move()函数,其中Picture表示车辆的显示图片,Speed定义车辆的速度,Distance表示车辆距离路口的距离,Length表示车辆的长度,Blank表示车队中车距,Move() 函数提供对车辆的控制的功能。汽车模型的属性调用情况,在车辆控制模块下,对车队和插入车的速度和距离路口的长度进行计算得出谁先到达控制模块通过调整车辆的Speed属性来控制车辆的具体行为。控制模块的具体流程如图2所示。

步骤三:输入完成后,程序进入演示的界面,展示车队的合并过程,期间将各车的速度信息以及车辆距离路口的距离信息等数据导出到文档中。

演示界面主要由车道和车辆演示(View)模块完成,该模块主要实现的功能是对车道的背景图片的载入、对汽车模型图片的叠加,以及对车道和车辆的动态处理过程。演示界面如图3所示。

车道和车辆的演示主要是通过MFC来是实现动态的处理图片的过程的。基本的方法是采用将赛车的图片引入到程序中,在程序运行时自动调运。

其实现的过程为:在菜单中插入赛车图片,选BitMap引入需要加载的赛车模型图片。然后通过一个CBitmap类的对象来加载:

CBitmap tempBmp; //定义位图对象

CRect dlgRect; //定义一个区域

GetClientRect(&dlgRect);

tempBmp.CreateCompatibleBitmap(pMainDC,dlg.Width(),dlg.Height());//创建与对话框兼容的位图对象

tempBmp.LoadBitmap('引入资源的ID'); //加载位图

pMainDC.SelectObject(&tempBmp); //选中赛车图片。

车道和车辆的演示主要是对图片的动态处理,利用Bitblt() 函数进行图片的绘制,利用定时器实时刷新车辆的图片在车道上的覆盖的坐标。

车道演示中对车道背景图片的处理的实现步骤如下:

一、重置对消息 WM_ERASEBKGND 的处理,以便将位图绘制在窗口的背景上;

二、将重置对消息 WM_CTLCOLOR 的处理,以避免对话框对背景图片造成错误的处理;

三、调整对话框的背景位图绘制在对话框的下面。

具体的实现的方法步骤如下。

一、进入资源编辑器并创建新的对话框模板。在对话框中,添加几个静态文本域和编辑域,使之能够覆盖部分位图;

二、选择 ClassWizard,为刚创建的对话框模板创建对话框类,新类命名为CBitmaPBkgdDlg;

三、在资源编辑器中创建新的位图;

四、进入 ClassWizard,从下拉列表中选择 CBitmapBkgdDlg,从对象列表中选择对象 CBitmapBkgdDlg,从消息列表中选择消息 WM_INITDIALOG,点击按钮 Add Function,修改 CBitmapBkgdDlg 的方法 OnInitDialog;

五、在ClassWizard 中,从对象列表中选择对象 CBitmapBkgdDlg,从消息列表中选择消息 WM_CTLCOLOR,点击按钮 Add Function,修改 CBitmapBkgdDlg 的方法OnCtlColor;

六、在ClassWizard 中,从对象列表中选择对象 CBitmapBkgdDlg,从消息列表中选择消息 WM_DESTROY,点击按钮 Add Function,修改 CBitmapBkgdDlg 的方法OnDestroy:

七、编辑 CBitmapBkgdDlg 的消息映射;

八、在 CBitmapBkgdDlg 的源文件 BitmapBkgdDlg.cpp 中添加新方法;

九、修改 CBitmapBkgdDlg 的头文件 BitmapBkgdDlg.h;

十、进入资源编辑器,在菜单 IDR_MAINFRAME 中添加新的菜单,标题为 Dialog。在菜单 Dialog 中添加新的菜单项,标题为 Bitmap Background,标识符为 ID_BITMAP_BKGND,退出资源编辑器,保存资源文件;

十一、进入 ClassWizard,从下拉列表中选择对象 CMainFrame,从对象列表中选择对象 ID_BITMAP_BKGND,从消息列表中选择消息 COMMAND,点击按钮 Add Function,新函数命名为 OnBitmapBkgnd。修改CMainFrame 的方法 OnBitmapBkgnd;

这样成功地布置了车道的背景图片。

车队合并主要由车辆模型控制(Controller)模块完成,该模块主要实现的功能是通过计算车辆通过路口的时间来判断,车队的合并时机,既是否需要合并。

当车队到达路口的时间长于车辆到达的时间,是不存在合并的过程的,车辆依旧是采用自身的设定进行驾驶;当车辆到达时间长于车队通过的时间,车辆与车队合并成功,各车不存在速度调整,车队没有完全通过,而将插队车辆到达了路口。由模型控制来处理对车辆的控制的问题,哪辆车应该减速,还是要停止移动,还是要倒退来维持一个可以插入车辆的安全车距。

车队合并过程中对车辆信息的数据导出主要指对4辆车的车速的记录和各车距离路口的距离,并将其输出到指定文档中。

其实现过程为:利用计时器,实时的(每隔一秒)产生各车的速度及距路口距离以便以后的分析。通过Fwrite()函数来实现数据的输出,主要是输出到指定的txt文档中既该程序的更目录下的car-data 文件中,从而方便详细地了解关于程序的数据导出细节。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

相关技术
  • 一种基于递归图和卷积神经网络的驾驶风格识别模型、换道决策模型及决策方法
  • 一种用于车辆自动驾驶的决策网络模型的生成方法及装置
技术分类

06120113276029