一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式停车场地图生产系统的制作方法

2022-06-12 00:10:33 来源:中国专利 TAG:


1.本技术实施例涉及自动驾驶技术领域,特别地,涉及一种分布式停车场地图生产系统。


背景技术:

2.目前,停车场高精度地图的生成包括多个数据处理环节,例如,获取数据、对获取到的数据进行预处理、感知以及多车次轨迹融合等。目前的停车场地图生产系统中,各个数据处理环节彼此独立但又相互依赖。随着量产车数据量的增加,车端上报的数据成几何指数增长。目前的集中式单机开发和部署已经跟不上数据增长的速度,甚至在数据急剧增加时,数据处理环节会出现数据堆积。


技术实现要素:

3.本技术实施例提供一种分布式停车场地图生产系统,以改善上述问题。
4.本技术实施例提供一种分布式停车场地图生产系统。该系统包括多个处理模块、监控模块、决策模块。其中,多个处理模块用于根据车端上报的地图数据生成停车场地图,多个处理模块中的每个处理模块独立运行。监控模块分别与每个处理模块连接,用于获取每个处理模块的运行参数,将每个处理模块的运行参数发送至决策模块,以及在获取到决策模块发送的调整结果时,根据调整结果调整每个处理模块的节点。决策模块,与所述监控模块连接,用于在获取到监控模块发送的每个处理模块的运行参数时,根据每个处理模块的运行参数生成是否增减每个处理模块的节点的调整结果,并将调整结果发送至监控模块。
5.在一些实施例中,决策模块包括计算子模块和决策子模块。其中,计算子模块用于根据每个处理模块的运行参数,按照预设方式计算每个处理模块的目标参数。决策子模块用于对多个处理模块中的目标参数大于第一参数阈值的处理模块,生成新增一个节点的调整结果;对多个处理模块中的目标参数小于第二参数阈值且当前具有至少两个节点的处理模块,生成减少一个节点的调整结果,,第二参数阈值小于第一参数阈值,第一参数阈值和第二参数阈值根据运算速度和计算资源确定。
6.在一些实施例中,每个处理模块的运行参数包括每个处理模块的节点数量、每个处理模块的内存占用比、每个处理模块的硬盘占用比、以及每个处理模块的每个节点的进程数量中的至少两个参数。
7.在一些实施例中,预设方式为对每个处理模块的运行参数中的每个参数设置权重,根据所述每个处理模块的运行参数和每个参数的权重计算每个处理模块的目标参数。
8.在一些实施例中,多个处理模块通过消息队列进行多个处理模块之间的数据交换。
9.在一些实施例中,每个处理模块与消息队列之间采用错误补偿机制进行信息交换。
10.在一些实施例中,多个处理模块包括数据获取模块、数据感知模块、数据对齐模块、地图生成模块。其中,数据获取模块用于获取车端上报的地图数据。数据感知模块用于对地图数据进行特征提取,得到目标地图数据。数据对齐模块,用于将目标地图数据与历史地图数据对齐,得到对齐结果。地图生成模块用于基于对齐结果生成停车场地图。
11.在一些实施例中,数据获取模块包括优先级确定子模块。优先级确定子模块用于当获取到至少两辆车分别上报的地图数据时,根据每辆车上报的地图数据确定每辆车的优先级别,并对每辆车上报的地图数据添加与每辆车的优先级别对应的标记,使得多个处理模块依据标记对应的优先级别依次处理每辆车上报的地图数据。
12.在一些实施例中,数据获取模块还包括数据统计子模块,数据统计子模块用于统计车端上报的地图数据的数据总量,当在预设时段内数据总量大于预设总量阈值时,发送提示信息至决策模块,提示信息包括预设总量阈值。决策模块还用于当获取到提示信息时,确定对每个处理模块增加与预设总量阈值对应数量的节点的调整结果。
13.在一些实施例中,分布式停车场地图生产系统以微服务的形式启动多个处理模块。
14.本技术实施例提供的分布式停车场地图生产系统,以模块化设计停车场地图生产的各个处理环节,每个处理环节独立运行,使得该系统具有较强的鲁棒性。此外,通过监控每个处理模块的运行参数,并根据每个处理模块的运行参数来确定是否增减该处理模块的节点数量,从而可以动态扩展每个处理模块的节点,能够有效避免由于车辆持续上报数据导致的数据堆积风险,实现动态负载均衡优化。
附图说明
15.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
16.图1是本技术实施例提供的目前普遍的停车场地图生产系统的结构框图;
17.图2是本技术实施例提供的分布式停车场地图生产系统的结构框图;
18.图3是本技术实施例提供的错误补偿机制的示例性的示意图。
具体实施方式
19.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
20.请参阅图1,图1是本技术实施例提供的目前普遍的停车场地图生产系统的结构框图。目前普遍的停车场地图生产系统10包括多个处理模块11-14和车辆15。
21.作为一种示例,如图1所示,多个处理模块11-14可以包括数据获取模块11、数据感知模块12、数据对齐模块13、地图生成模块14。数据获取模块11分别与车辆15连接,用于获取车辆15上报的停车场地图数据。数据获取模块11、数据感知模块12、数据对齐模块13、地图生成模块14之间依次首尾连接,用于根据停车场地图数据生成停车场地图。
22.如图1所示,目前普遍的停车场地图生产系统10中的各个模块彼此独立却又相互
依赖,若其中某一个处理模块出现问题,例如,数据感知模块12宕机,相应地,其他处理模块也会因为模块之间的依赖关系无法运作,从而导致停车场地图生产系统瘫痪,影响停车场建图流程。
23.此外,停车场地图生产系统10中的每个处理模块布置于同一个服务器中,随着车端上报的数据瞬间增加或者持续增长,当超出服务器能承载的数据量范围时,会导致数据堆积甚至服务器宕机,影响建图流程。
24.基于上述情况,本技术实施例提出了一种分布式停车场地图生产系统,以改善上述问题。本技术实施例提供的分布式停车场地图生产系统以模块化设计停车场地图生产的各个处理环节,每个处理环节独立运行,使得该系统具有较强的鲁棒性。此外,通过监控每个处理模块的运行参数,并根据每个处理模块的运行参数来确定是否增减该处理模块的节点数量,从而可以动态扩展每个处理模块的节点,能够有效避免由于车辆持续上报数据导致的数据堆积风险,实现动态负载均衡优化。
25.请参阅图2,图2是本技术实施例提供的分布式停车场地图生产系统的结构框图。分布式停车场地图生产系统20包括多个处理模块21、监控模块22、决策模块23。其中,监控模块22分别与多个处理模块21和决策模块23连接。
26.多个处理模块21用于根据车端(未示出)上报的地图数据生成停车场地图,多个处理模块21中的每个处理模块独立运行且不存在物理上的连接关系,即,多个处理模块21中的每个处理模块仅存在逻辑上的连接关系,相互之间通过消息中间件(例如,后续将会提到的消息队列或者数据库)实现数据交换。在一些实施例中,每个处理模块部署有至少一个节点。需要说明的是,本技术实施例中提到的所有节点均可以指服务器。
27.监控模块22用于获取每个处理模块的运行参数,将获取到的每个处理模块的运行参数发送至决策模块23,以及在获取到决策模块23发送的调整结果时,根据调整结果调整每个处理模块的节点。在一些实施例中,监控模块22可以实时获取每个处理模块的运行参数。在另一些实施例中,监控模块22也可以间隔预设时段(例如,0.5秒)获取每个处理模块的运行参数。其中,预设时段可以实际需求进行设置,本技术实施例在此不做具体限制。
28.每个处理模块的运行参数可以包括每个处理模块的节点数量、每个处理模块的内存占用比、每个处理模块的硬盘占用比以及每个处理模块的每个节点的进程数量中的至少两个参数,其中,内存占用比是指已使用的内存部分占整个内存的比例,硬盘占用比是指已使用的硬盘部分占整个硬盘的比例。
29.决策模块23用于在获取到监控模块22发送的每个处理模块的运行参数时,根据每个处理模块的运行参数生成是否增减每个处理模块的节点的调整结果,并将调整结果发送至监控模块22。
30.在一些实施例中,决策模块23可以包括计算子模块(图2中未示出)和决策子模块(图2中未示出)。其中,计算子模块用于根据每个处理模块的运行参数,按照预设方式计算每个处理模块的目标参数。在一些实施方式中,预设方式可以为对每个处理模块的运行参数中的每个参数设置权重,根据每个处理模块的运行参数和每个参数的权重计算每个处理模块的目标参数。需要说明的是,上述预设方式仅为示例,实际应用场景中,开发者可以根据实际需求对预设方式进行设置,本技术实施例在此不作具体限制。
31.例如,数据获取模块211的运行参数为:节点数量为1个,节点的内存占用比为
80%,进程数量为50。设置内存占用比和进程数量的权重分别为0.5和0.5。则可以得到数据获取模块211的目标参数为:80%*100*0.5 50*0.5=65。
32.在一些实施例中,当每个处理模块的节点数量大于或等于两个时,可以分别采用上述预设方式计算每个处理模块的每个节点的目标参数,对每个处理模块的每个节点的目标参数设置权重,根据每个处理模块的每个节点的目标参数的权重计算该处理模块的目标参数。
33.例如,数据获取模块211的运行参数为:节点数量为2个,节点1的内存占用比为80%,节点1的进程数量为50。节点2的内存占用比为30%,节点2的进程数量为20。设置每个处理模块的每个节点的内存占用比和进程数量的权重分别为0.5和0.5。设置节点1的目标参数和节点2的目标参数的权重分别为0.5和0.5。则可以得到节点1的目标参数为:80%*100*0.5 50*0.5=65;节点2的目标参数为:30%*100*0.5 20*0.5=25,则数据获取模块211的目标参数为65*0.5 25*0.5=45。
34.决策子模块用于对多个处理模块中的目标参数大于第一参数阈值的处理模块,生成新增一个节点的调整结果;对多个处理模块中的目标参数小于第二参数阈值且当前具有至少两个节点的处理模块,生成减少一个节点的调整结果。其中,第一参数阈值和第二参数阈值可以根据对运算速度和计算资源的实际需求进行设置,在此不作具体限制。通常对运算速度和计算资源的要求越高,第一参数阈值越小,第二参数阈值越大,但第二参数阈值始终小于第一参数阈值。
35.例如,数据获取模块211仅有一个节点时,第一参数阈值为60,数据获取模块211的目标参数为65(大于第一参数阈值60),则决策子模块生成新增一个数据获取模块211的节点的调整结果。又例如,数据获取模块211有两个节点时,第一参数阈值为60,第二参数阈值为40,数据获取模块211的目标参数为45(小于第二参数阈值40),则决策子模块生成减少一个数据获取模块211的节点的调整结果。
36.在一些实施例中,决策子模块还可以用于对多个处理模块中的目标参数大于或等于第二参数阈值且小于或等于第一参数阈值的处理模块,生成不调整节点数量的调整结果。
37.在一些实施例中,每个处理模块之间可以通过消息队列进行数据连接,从而可以避免重要数据丢失。消息队列是指是在消息的传输过程中保存消息的虚拟容器,消息队列可以由开发者根据实际需求编写对应的代码所创建,所创建出来的消息队列可以存储在分布式停车场地图生产系统的单独的服务器中,或者也可以存在上述某个处理模块种或者上述监控模块中。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。简言之,消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。
38.在另一些实施例中,每个处理模块之间也可以通过第三方数据库实现数据交换,即每个处理模块可以往第三方数据库中存储数据,也可以从第三方数据库中读取数据。
39.在一些实施例中,每个处理模块与消息队列之间可以采用错误补偿机制进行信息
交换。通过增加错误补偿机制,可以确保所有消息队列与每个处理模块之间的交换信息得到成功处理,从而防止重要信息丢失。
40.消息队列与每个处理模块之间的消息发送状态包括两种,一种是消息队列向每个处理模块发送信息的状态,另一种是每个处理模块向消息队列订阅信息的状态。若消息发送状态满足预设条件,消息队列或每个处理模块会重新向对方发送未确认的、上次发送的消息。
41.例如,消息发送状态满足预设条件可以是:消息队列向每个处理模块发送信息,消息队列在预设时间段(例如,0.5秒)内未收到处理模块的反馈信息。消息发送状态满足预设条件也可以是:每个处理模块向消息队列订阅信息,处理模块在预设时间段(例如,0.5秒)内未收到消息队列的反馈信息。
42.需要说明的是,本技术实施例中的反馈信息可以是特定的一串序列,也可以是特定的关键字等,本技术实施例在此不作具体限制。特别地,每个处理模块和消息队列的反馈信息可以各不相同,以便区分消息发送方和消息接收方,不仅可以提高数据发送和接收的速度,还可以确保各个处理模块与消息队列之间的信息传递无误。
43.请参阅图3,图3是本技术实施例提供的错误补偿机制的示例性的示意图。消息队列向数据感知模块212发送信息,在预设时间段内消息队列未收到数据感知模块212的反馈消息,可以确定消息队列向数据感知模块212发送信息失败,消息队列需要重新向数据感知模块212发送未确认的、上次发送的信息。
44.在一些实施例中,请再参阅图2,多个处理模块21可以包括数据获取模块211、数据感知模块212、数据对齐模块213、地图生成模块214。其中,数据获取模块211用于所述车端(图2未示出)上报的地图数据。数据感知模块212用于对地图数据进行特征提取得到目标地图数据。数据对齐模块213用于将目标地图数据与历史地图数据对齐,得到对齐结果。地图生成模块214用于基于对齐结果生成停车场地图。
45.在一些实施例中,数据获取模块211可以包括优先级确定子模块(图2中未示出)。优先级确定子模块用于当获取到至少两辆车分别上报的地图数据时,根据每辆车上报的地图数据确定每辆车的优先级别,并对每辆车上报的地图数据添加与每辆车的优先级别对应的标记,使得多个处理模块依据标记对应的优先级别依次处理每辆车上报的地图数据。其中,地图数据可以包括车辆的所有者的身份信息,优先级确定子模块可以根据每辆车的所有者的身份信息确定该车的优先级别。需要说明的是,上述标记可以添加在地图数据的首部、中部、尾部或者地图数据文件名中等,本技术在此不作具体限制。通过根据优先级对不同车辆上报的地图数据进行处理,可以优先处理贵宾客户(very important person,vip)的车辆上报的数据,从而提高用户体验。
46.例如,优先级确定子模块获取到车辆a和车辆b分别上报的地图数据,可以根据车辆a的所有者的身份信息确定车辆a的优先级别为等级1,在车辆a上报的地图数据中添加与等级1对应的标记,如a-first。根据车辆b的所有者的身份信息确定车辆b的优先级别为等级2,在车辆b上报的地图数据中添加与等级2对应的标记,如,b-second。
47.在一些实施例中,数据获取模块211还可以包括数据统计子模块(图2中未示出)。数据统计子模块用于统计车端上报的地图数据的数据总量,当在预设时段内数据总量大于预设总量阈值时,发送提示信息至决策模块,提示信息包括预设总量阈值。决策模块还用于
当获取到提示信息时,确定对每个处理模块增加与预设总量阈值对应数量的节点的调整结果。其中,预设时段和预设总量阈值可以根据实际需求进行设置,本技术实施例在此不作具体限制。
48.在本实施例中,通过在获取数据时统计数据总量,并在数据总流量大于预设总量阈值时,对每个处理模块增加与预设总量阈值对应数量的节点,从而可以避免在遇到高峰期时,多车瞬时上报大量数据导致的处理模块来不及处理,造成数据堆积的风险,从而提升分布式停车场地图生产系统的鲁棒性,并提高停车场地图生产的效率。
49.在另一种实施例中,上述数据统计子模块也可以按照与上述各个处理模块类似的方式,部署为分布式停车场地图生产系统20中的独立的一个数据统计模块,例如,部署为分布式停车场地图生产系统20的单独的一个服务器,使得整个系统运行更加灵活、流畅,也可以降低数据获取模块211的负担。
50.在一些实施例中,本技术实施例提供的分布式停车场地图生产系统20以微服务的形式启动多个处理模块,可以提高分布式停车场地图生产系统20的地图生产效率,降低系统资源的占用率。
51.综上所述,本技术实施例提供一种分布式停车场地图生产系统。该系统包括多个处理模块、监控模块、决策模块。其中,多个处理模块用于根据车端上报的地图数据生成停车场地图,多个处理模块中的每个处理模块独立运行且不存在物理上的连接关系。监控模块分别与每个处理模块连接,用于获取每个处理模块的运行参数,将每个处理模块的运行参数发送至决策模块,以及在获取到决策模块发送的调整结果时,根据调整结果调整每个处理模块的节点。决策模块,与所述监控模块连接,用于在获取到监控模块发送的每个处理模块的运行参数时,根据每个处理模块的运行参数生成是否增减每个处理模块的节点的调整结果,并将调整结果发送至监控模块。
52.本技术实施例提供的分布式停车场地图生产系统,以模块化设计停车场地图生产的各个处理环节,每个处理环节独立运行,使得该系统具有较强的鲁棒性。此外,通过监控每个处理模块的运行参数,并根据每个处理模块的运行参数来确定是否增减该处理模块的节点数量,从而可以动态扩展每个处理模块的节点,能够有效避免由于车辆持续上报数据导致的数据堆积风险,实现动态负载均衡优化。
53.最后应说明的是:以上实施例仅用于说明本技术的技术方案,而非对其限制。尽管参照前述实施例对本技术进行了详细的说明,本领域技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献