李紫艳 刘奇付
(漯河食品职业学院,河南 漯河 462300)
基于诱导线描画算法的车载导航系统的研究
李紫艳 刘奇付
(漯河食品职业学院,河南 漯河 462300)
车载导航系统中,D r a w是实现地图描画和控制的主要模块。地图和m a r k的描画工作都由D r a w来实现。具有诱导方向表示功能的诱导线,我们将其作为一种特殊的m a r k来描画。其主要功能分为:诱导线的表示控制、诱导线的数据取得、诱导线的描画实行。
车载导航;地图描画;诱导方向;诱导线
汽车导航是由GPS定位功能、路径引导功能,以及将信息通知给汽车司机的地图显示器构成。
本文设计的汽车导航系统是由集GPS天线和接收器于一体的GPSECU,陀螺仪传感器,车速传感器,DVD-ROM,DVD ECU,以及导航ECU构成的。定位技术使用了混合航法。这个混合导航法是由以下内容构成:
(1)使用推测航法,通过陀螺仪传感器算出车辆的相对方位,通过车速传感器算出距离。
(2)对照通过推测导航法取得的车辆轨迹和地图DVDROM内的道路形状数据,求得当前行驶中的道路,并和地图匹配。
(3)防止车辆的轨迹和道路形状数据之间的误差被积累,致使当前位置被诱导到错误的道路上。
本文主要采用诱导线功能来满足用户要求,实现导航系统的功能。
诱导线的作用是在用户设定目的地后,将现在地和目的地连接起来,用来提示用户目的地在用户的哪个方向。而这条连接线被称为“诱导线”。对于诱导线有如下规定:
(1)诱导线用黄色表示,它以直线的形式描画在地图上;
(2)诱导线的长度和方向会随着自车的行走、目的地的添加、变更和删除而变化;
(3)用户可以沿着诱导线找到目的地和自车Mark。
3.1 模块的划分
描画模块是实现地图描画和控制的主要模块。功能是收集、整理描画地图所需信息和控制地图描画动作。描画模块与外部模块通过Message进行信息交互,当描画模块接收到外部Message后,将其映射到相应的Event。描画任务内部各子模块之间的协调通过内部Event来实现。描画任务的内部结构图如图1所示。
图1 MapDraw模块结构图
为了实现任务之间的通信功能,ITRON提供了邮箱,我们在程序中也是主要使用消息进行任务间的通信。但在任务内,则采用Event调用方式。即为任务定义一个Msg到达的Event,将该任务发送消息变为MailBox+发送Msg到达Event。则任务可以等待Msg的到达,也可以等待其他Event,在接收到了Event后,才调用事件处理函数。
因此,诱导线的描画可以作为一种Mark来进行管理,诱导线的生存周期与其它Mark有相似性,与目的地Mark关系紧密,在目的地存在的情况下,对诱导功能设定后,诱导线将与目的地Mark有相同的生命期。同时,目的地Mark子模块可以提供诱导线所需要的描画线端点数据。而自车的位置定位是一个单独的模块,我们也比较容易获得诱导线的另一个端点的数据信息。
3.2 诱导线描画算法
首先确定自车位置和目的地位置是否在显示画面上。
从描画模块获取显示画面的两个端点的坐标(在此取左下点坐标及右上点坐标),并在模块内计算出自车与目的地在地图中的坐标,然后根据这两个点的坐标所定的范围来确定自车(A)和目的地(G)是否在显示画面面上。
(1)两点同时在显示画面中时:
将两个点的坐标以消息模式传给描画模块,由描画模块描画诱导线。
(2)两点都不在显示画面中时:
①根据两点坐标计算出一条直线:ax+by+c=0;
②然后将平面对角线上两个端点的坐标分别代入这个直线公式,结果同时小于0或者同时大于0时,则表示诱导线与显示画面没有相交,反之则有相交。
图2 诱导线所在直线与画面不相交示例
没有相交:不需要画诱导线。
相交:根据两个端点坐标和直线计算出两个交点的坐标,将两交点的坐标以消息模式传给描画模块。
图3 诱导线所在直线与画面相交示例
(3)自车或者目的地有一者在画面上时:
①根据两点坐标计算出一条直线:ax+by+c=0;
②然后根据四个端点的坐标求出相交点的坐标将两点的坐标以消息模式传给描画模块。
图4 诱导线所在直线与画面相交示例
3.3 诱导线的描画
诱导线的描画是通过GuideLine_Draw()函数实现的,函数流程图如图5:
图5 GuideLine_Draw()函数流程图
3.4 诱导线描画算法实现
对描画数据有效性进行检测,判定描画数据的合法性,需要显示平面的左下点坐标和右上点坐标,然后根据自车坐标与目的地坐标确定的直线与平面坐标边的交点获得实际描画线端点坐标数据。在实际的诱导线描画判定及处理过程中,我们将流程图输入数据判断是否有效与诱导线的实行一起处理。
整个描画模块任务与其它任务的通信是通过消息来传达的,然后将收到的消息映射为相应事件来处理。所以,将诱导线的描画作为一个事件,并将其放到Mark描画模块,我们只需要添加一个事件的消息映射,其它方面都不需要作改动,就可以完成软件的功能扩展。
最后,经过编码、单体测试、集成测试和系统测试后,完成诱导线功能。
车载导航系统是实时嵌入式系统的又一成功应用。随着计算机的发展和应用的普及,实时计算机系统已经在工业、交通、能源、科学学习和科学实验、国防等各个领域发挥着极其重要的作用。车载导航系统给人们的出行带来各种便利,极大地改变着人们的生活方式。
[1]刘奇付,李紫艳.舰船磁定位算法实现及计算分析[J].舰船科学技术,2 0 16,3 8(2):10 7-110.
[2]李紫艳,刘奇付.基于VT K的图像可视化研究[J].信息系统工程,2 0 14(7):13 6-13 8.
Research of Vehicle Navigation System Based on Induced Wire Drawing
Li Ziyan Liu Qifu
(Luohe Food Vocational College,Luohe 462300,Henan)
In vehicle navigation system,Draw is the main part of the map drawing and control.Map and mark drawing is realized by Draw.The induced wire shows the direction.We use it as a special mark drawing.Its main functions are induced wire control,data acquisition of induced wire and induced wire drawing practice.
vehicle navigation;map drawing;induced orientation;induced wire
U495
A
1008-6609(2016)11-0032-03
李紫艳(19 79-),女,河南漯河人,硕士,高校讲师,研究方向为软件技术、数据库技术。
漯河食品职业学院2 0 15年重点科研攻关项目,项目编号:2 0 150 2 0 10。