CN111766853B - 一种传感器数据分发系统 - Google Patents
一种传感器数据分发系统 Download PDFInfo
- Publication number
- CN111766853B CN111766853B CN201910195082.2A CN201910195082A CN111766853B CN 111766853 B CN111766853 B CN 111766853B CN 201910195082 A CN201910195082 A CN 201910195082A CN 111766853 B CN111766853 B CN 111766853B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- sensor data
- thread pool
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 claims abstract description 133
- 238000004891 communication Methods 0.000 claims abstract description 63
- 238000012544 monitoring process Methods 0.000 claims abstract description 31
- 238000004148 unit process Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000005259 measurement Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0278—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
- G05D1/0293—Convoy travelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
本发明实施例公开了一种传感器数据分发系统,包括:监听单元被配置为实时线程监听到与该线程的优先级相对应的传感器数据到来时,将传感器数据分发到第一数据处理单元;第一数据处理单元中的第一数据处理线程池按照传感器数据的优先级对传感器数据进行处理;数据分发单元中的数据发送线程池根据传感器数据的优先级依次将传感器数据通过通信单元发送给数据接收单元;数据接收单元中的数据接收线程池将传感器数据分发到第二数据处理单元中的第二数据处理线程池;其中,第一数据处理线程池、数据发送线程池、数据接收线程池和第二数据处理线程池的优先级与传感器数据的优先级一致。通过采用上述方案,减小框架依赖复杂度、保证传感器数据的实时性。
Description
技术领域
本发明涉及自动驾驶技术领域,具体涉及一种传感器数据分发系统。
背景技术
自动驾驶汽车是一个多传感器组合的复杂系统,稳定可靠地传感器数据采集分发框架是实现自动驾驶的基础。
现有自动驾驶采用的数据分发方案大多基于ROS(Robot Operating System,机器人软件操作系统),该系统提供了订阅、发布和远程调用等服务机制,是一个通用的软件框架。
但由于目前ROS主要存在如下几个问题:1、ROS系统比较庞大、软件包版本依赖关系复杂。2、ROS系统传递消息实时性差。因此,在嵌入式设备上实现实时自动驾驶传感器数据采集系统时,ROS并不是最佳的选择。
发明内容
本发明实施例公开一种传感器数据分发系统,能够减小框架依赖复杂度、提高了关键传感器数据优先级,保证了传感器数据的实时性。
第一方面,本发明实施例公开了一种传感器数据分发系统,该系统应用于自动驾驶的主机端,该系统包括:监听单元、第一数据处理单元、数据分发单元、数据接收单元、通信单元和第二数据处理单元;其中,
所述监听单元,被配置为:当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将所述传感器数据分发到第一数据处理单元;
所述第一数据处理单元,被配置为:所述第一数据处理单元中的第一数据处理线程池按照所述传感器数据的优先级对所述传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元;
所述数据分发单元,被配置为:所述数据分发单元中的数据发送线程池根据所述传感器数据的优先级将所述传感器数据通过通信单元依次发送给数据接收单元;
所述数据接收单元,被配置为:所述数据接收单元中的数据接收线程池将所述传感器数据分发到第二数据处理单元中的第二数据处理线程池,以供所述第二数据处理线程池进行处理;
其中,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池的优先级与所述传感器数据的优先级一致。
可选的,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池中的线程数量、优先级和调度策略是根据所述传感器数据的优先级、频率和数据量创建的。
可选的,所述实时线程包括高实时线程和低实时线程;其中,所述高实时线程用于监听高优先级的传感器数据,所述低实时线程用于监听低优先级的传感器数据。
可选的,所述监听单元具体被配置为:
在将所述传感器数据分发到第一数据处理单元之后,继续执行监听操作。
可选的,所述通信单元具体被配置为:
通过预先配置的共享内存或消息队列机制建立所述数据分发单元和所述数据接收单元之间的通信连接。
可选的,所述传感器数据为实时获取的传感器数据或者历史传感器数据。
可选的,所述高优先级的传感器数据包括惯性测量单元IMU数据,所述低优先级的传感器数据包括全球定位系统GPS数据和轮速传感器ODO数据。
第二方面,本发明实施例还提供了一种传感器数据分发系统,该系统包括:第一主机和第二主机,所述第一主机和所述第二主机按照通信模块中预先配置的通信方式建立通信连接;其中,所述第一主机包括驱动模块和第一数据分发模块,所述第二主机包括第二数据分发模块;所述第一数据分发模块包括监听单元,第一数据处理单元和数据分发单元;所述第二数据分发模块包括数据接收单元、第二数据处理单元和预设算法单元;其中,
所述监听单元,被配置为当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将所述传感器数据分发到第一数据处理单元;
所述第一数据处理单元,被配置为所述第一数据处理单元中的第一数据处理线程池按照所述传感器数据的优先级对所述传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元;
所述数据分发单元,被配置为所述数据分发单元中的数据发送线程池根据所述传感器数据的优先级依次将所述传感器数据通过所述通信模块发送给数据接收单元;
所述数据接收单元,被配置为所述数据接收单元中的数据接收线程池将所述传感器数据分发到第二数据处理单元中的第二数据处理线程池,以供所述第二数据处理线程池进行处理;
所述第二数据处理单元,被配置为在所述第二数据处理线程池完成对所述传感器数据处理后,将所述传感器数据发送到所述预设算法单元,所述预设算法单元通过预设回调函数对所述第二数据处理单元发送的传感器数据进行处理;
其中,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池的优先级与所述传感器数据的优先级一致。
可选的,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池中的线程数量、优先级和调度策略是根据所述传感器数据的优先级、频率和数据量创建的。
可选的,所述通信模块中预先配置的通信方式为通过socket进行通信。
本发明实施例提供了的传感器数据的分发系统包括监听单元、第一数据处理单元、数据分发单元、数据接收单元、通信单元和第二数据处理单元,通过各个单元的控制,针对不同优先级的传感器数据形成了优先级不同的数据通路,保证优先级高的传感器数据能够被及时分发和处理。此外,本发明实施例的分发系统减小了框架依赖复杂度、优化了的传感器数据的传输效率。
本发明的发明点包括:
1、通过各个单元的控制,针对不同优先级的传感器数据形成了优先级不同的数据通路,保证优先级高的数据被及时分发,是本发明的发明点之一。
2、第一数据处理线程池、数据发送线程池、数据接收线程池和第二数据处理线程池中的线程数量、优先级和调度策略根据传感器数据的优先级、频率和数据量而创建,使得各线程池的优先级与传感器数据的优先级良好匹配,是本发明的发明点之一。
3、高优先级、高发送频率的传感器数据预先设置了高实时线程来监听,而低优先级、低发送频率的数据则使用低实时线程来监听,从而保证关键数据能够得到及时响应,是本发明的发明点之一。
4、预先配置的通信方式决定了本发明实施例中分发系统的内部运行过程是由一个主机完成还是由两个主机完成。不管是哪种方式,与通信单元分别相连的数据分发单元和数据接收单元均是独立的运行单元,二者通过预先配置的通信方式传输数据,这样设置降低了二者的耦合度,是本发明的发明点之一。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种传感器数据分发系统的结构框图;
图2是本发明实施例提供的又一种传感器数据分发系统的结构框图;
图3为本发明实施例提供的一种传感器数据分发系统进行在线采集的软件架构示意图;
图4为本发明实施例提供的一种传感器数据分发系统进行离线仿真的软件架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
请参阅图1,图1是本发明实施例提供的一种传感器数据分发系统的结构框图。该系统应用于自动驾驶的主机端。该系统的内部运行过程可以为实时传感器数据的在线采集过程,也可以为离线仿真过程。对于离线仿真过程,是将历史数据文件按照真实情况回放,具体为文件读取线程负责读取各个传感器的历史数据文件,并按照相应数据时间戳的顺序注入到系统中,模拟真实的车上传感器数据采集分发系统。本实施例将主要对实时采集过程进行详细说明。
如图1所示,本实施例提供的传感器数据分发系统包括:监听单元110、第一数据处理单元120、数据分发单元130、通信单元140、数据接收单元150和第二数据处理单元160。其中,
监听单元110,被配置为:当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将传感器数据分发到第一数据处理单元;
第一数据处理单元120,被配置为:第一数据处理单元中的第一数据处理线程池按照传感器数据的优先级对传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元;
数据分发单元130,被配置为:数据分发单元中的数据发送线程池根据传感器数据的优先级依次将传感器数据通过通信单元140发送给数据接收单元150;
数据接收单元150,被配置为:数据接收单元中的数据接收线程池将传感器数据分发到第二数据处理单元160中的第二数据处理线程池,以供第二数据处理线程池进行处理;
其中,第一数据处理线程池、数据发送线程池、数据接收线程池和第二数据处理线程池的优先级与传感器数据的优先级一致。
下面,分别对各个单元的工作原理进行说明:
(1)为了确保自动驾驶正常安全行驶,必须实时获取各个传感器数据。本实施例中,监听单元优选采用效果较高的非阻塞通信,例如epoll、select或者poll等方式来监听传感器数据。
此外,为了确保关键数据得到及时响应,本实施例中的实时线程包括高实时线程和低实时线程。其中,高实时线程与高优先级的传感器数据相对应,低实时线程与低优先级的传感器数据相对应,即高优先级、高发送频率的传感器数据预先设置了高实时线程来监听,而低优先级、低发送频率的数据则使用低实时线程来监听。监听单元在监听到数据到来后将会将数据发送到第一数据处理单元,然后继续执行监听操作。
本实施例中,传感器数据的优先级可根据传感器的采样频率来设置,采样频率较大的传感器所采数据可作为高优先级的传感器数据,例如IMU(Inertial measurementunit,惯性测量单元)数据,而采样频率较小的传感器所采数据,例如GPS(GlobalPositioning System,全球定位系统)数据、轮速传感器ODO数据和图像传感器数据,可作为低优先级数据。或者,传感器数据的优先级也可由用户根据实际需求自行设置。
在传感器的优先级确定后,实时线程的高低可按照传感器数据的优先级预先进行设置,具体可通过占用CPU(Central Processing Unit,中央处理器)时间的比例来表示,例如,如果某个线程与高优先级的IMU数据相对应,则可为其分配占CPU的时间比例为80%,另外某个线程与低优先级的GPS数据相对应,则可为其分配占CPU的时间比例为20%。在后续系统的运行过程中,当IMU数据来临时,则利用高实时线程对其进行处理,即使在处理过程中有GPS数据到来,也优先处理完IMU数据再处理GPS数据。
另外,为了增加软件框架的弹性,本实施例抽象了不同传感器的通信接口,使得硬件变化尽量少的影响软件。
(2)对于第一数据处理单元,该单元也采用了基于优先级的线程池结构,即第一数据处理线程池,该线程池中线程的数量、优先级以及调度策略是根据相应传感器数据的优先级、频率和数据计算量创建的,这样可以使得线程池与传感器数据之间良好匹配。此外,在该第一数据处理单元中集中了与传感器数据相关的处理算法(如解包、打包、缓冲和过滤等),数据处理完成后传递给数据分发单元,然后继续处理监听单元发来的新数据。
(3)对于数据分发单元,该单元也采用线程池结构,即数据发送线程池,该线程池中线程的数量、优先级和调度策略也是根据传感器数据的优先级、频率和数据量创建的,这样设置可以使得数据发送线程池与传感器数据良好匹配。
(4)对于通信单元,该通信单元的配置方式决定了本发明实施例提供的软件架构是运行在一个主机端还是运行在两个主机端。具体的,如果通信单元被配置为:通过预先配置的共享内存或消息队列机制建立数据分发单元和数据接收单元之间的通信连接,则决定了本实施例的软件架构运行在同一个主机端,这样设置会提高运行效率。但如果通信单元被配置为通过网络传输数据,例如通过socket进行通信,则决定了软件架构的运行过程由两个主机来完成。
需要说明的是,不论软件架构是运行在一个主机端还是运行在两个主机端,与通信单元分别相连的数据分发单元和数据接收单元均是独立的运行单元,耦合程度并不高,例如,数据分发单元无需确定其发出的数据是通过何种通信方式传输到数据接收单元进行接收的,数据接收单元也无需确定应该以何种通信方式来接收数据。根据通信单元预先完成的通信配置,数据分发单元和数据接收单元均可完成各自的分发和接收操作。
(5)对于数据接收单元,该单元从通信单元获取传感器数据,数据到来后激活等待线程,例如通过epoll、select或poll等方式来监听是否有传感器数据到达,然后将传感器数据分发到第二数据处理单元中的第二数据处理线程池中去运行。
其中,第二数据处理单元与第一数据处理单元相对应,例如对于结构体中的各成员,如果第一数据处理单元将各成员转换为字节流的形式,并通过数据分发单元发出,那第二数据处理单元中的第二数据处理线程池在接收到数据后,需将字节流再还原成结构体形式。
本实施例提供了一种传感器数据的分发系统,应用于一个主机端,该系统包括监听单元、第一数据处理单元、数据分发单元、数据接收单元、通信单元和第二数据处理单元,通过各个单元的控制,针对不同优先级的传感器数据形成了优先级不同的数据通路,保证优先级高的传感器数据能够被及时分发和处理。此外,本发明实施例的分发系统减小了框架依赖复杂度、优化了的传感器数据的传输效率。
实施例二
请参阅图2,图2是本发明实施例提供的又一种传感器数据分发系统的结构框图。本实施例的分发系统包括第一主机10和第二主机20,其中,第一主机10和第二主机20按照通信模块中预先设置的通信方式建立通信连接。
具体的,第一主机包括驱动模块110和第一数据分发模块120,第二主机20包括第二数据分发模块210;第一数据分发模块120包括监听单元121、第一数据处理单元122和数据分发单元123;第二数据分发模块210包括数据接收单元211、第二数据处理单元212和预设算法单元213;其中,
监听单元121,被配置为当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将传感器数据分发到第一数据处理单元122;
第一数据处理单122元,被配置为第一数据处理单元中的第一数据处理线程池按照传感器数据的优先级对传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元123;
数据分发单元123,被配置为数据分发单元中的数据发送线程池根据传感器数据的优先级将传感器数据通过通信模块发送给数据接收单元211;
数据接收单元211,被配置为数据接收单元中的数据接收线程池将传感器数据分发到第二数据处理单元212中的第二数据处理线程池,以供第二数据处理线程池进行处理;
第二数据处理单元212,被配置为在第二数据处理线程池完成对传感器数据处理后,将传感器数据发送到预设算法单元213,预设算法单元213通过预设回调函数对第二数据处理单元212发送的传感器数据进行处理;
其中,第一数据处理线程池、数据发送线程池、数据接收线程池和第二数据处理线程池的优先级与传感器数据的优先级一致。
上述各个单元的工作原理可参见上述实施例的内容,本实施例不再赘述。
需要说明的是,本实施例中传感器数据分发系统运行在两个主机上是由通信模块决定的。如果通信模块中预先设置的通信方式为通过网络进行通信,例如采用socket进行通信,则可将说明传感器数据分发系统的运行过程需由两个主机来完成。
本实施例提供了一种传感器数据的分发系统,该系统的运行过程由两个主机来共同完成。两个主机之间通过通信模块中预先设置的如socket方式进行通信。通过各主机中各个单元的控制,针对不同优先级的传感器数据形成了优先级不同的数据通路,保证优先级高的传感器数据能够被及时分发和处理。
图3所述的是传感器数据分发系统进行在线采集的软件架构示意图,如图3所示,该系统按照数据的优先级和发送频率,在纵向分为了两个部分,左侧虚线框图代表了高优先级和发送频率高的传感器数据的发送过程,以IMU为例。右侧虚线框图代表了低优先级和发送频率相对较低的传感器数据发送过程,以GPS和ODO为例。另外,该系统按照软件架构中的作用,横向分为以下五层,包括:第一层:传感器驱动层;第二层:数据监听、处理和发送层;第三层、数据交换层;第四层:数据接收、监听和处理层;第五层:数据分发层。
下面对每个部分的具体描述:
首先系统需要支持硬件实时,例如对于Linux可以使用PREEMPT_RT或者Xenomai补丁,使系统得到硬实时的保证。
1、第一层传感器驱动层使用专门开发的实时驱动程序,减少设备中断处理可能造成的延迟。如PREEMPT_RT中断线程化技术、Xenomai RTDM开发技术(如Rtnet、Rtserial、RtCAN)等,都可以用来减少驱动层延迟。
2、第二层数据监听、数据处理、数据分发层是用户空间数据处理部分:
a)对于数据监听,本实施例使用效率较高的非阻塞通信,例如通过epoll(select或poll)来监听设备(也称IO线程)。为了确保关键数据得到及时响应,对于高优先级、高发送频率的数据使用高实时线程来监听;低优先级、低发送频率的数据使用低实时线程来监听。在监听到数据到来后,将数据发送到数据处理部分处理,然后继续监听。为了增加软件框架的弹性,本实施例抽象了不同设备的通信接口,使得硬件变化尽量少的影响软件。
b)为了提高IO线程的效率,数据处理部分采用了基于优先级的线程池结构。线程池中线程的数量、优先级以及调度策略根据相应数据的优先级、频率、数据计算量来创建,使得二者良好匹配。这个部分集中了与数据相关的处理算法(如解包、打包、缓冲、过滤等),数据处理完成后传递给数据分发部分,然后继续处理监听部分发来的新数据。
c)数据分发也采用线程池结构,线程池中线程的数量、优先级、调度策略需要根据相应数据的优先级、频率、创建,使得二者良好匹配。数据分发层会将接收到的数据转发给操作系统。
3、第三层通信单元分装了不同的通信方式,根据不同的情况可以配置不同的通信策略,以达到减少数据复制,提高数据传输速率的效果。例如,同一个进程中的线程间可通过共享指针的方式来共享数据;同一主机进程间通信可通过系统提供的IPC机制(共享内存、消息队列等机制);不同主机间通信通过socket交换数据。
4、第四层同样使用非阻塞通信。数据接收线程池按照第三层通信单元已配置完成的通信方式,从第三层获取数据;数据到来后激活等待线程,例如通过epoll(select或poll)来监听是否有数据到达;然后将数据分发到第二数据处理线程池中去运行。
5、第五层数据分发层主要是对第四层中第二数据处理线程池输出的数据进行预处理,例如滤波、去噪等,并将预处理后的传感器数据发送到预设算法单元。该预设算法单元通过对应算法的处理回调函数,将对传感器数据进行进一步的运算操作,例如根据传感器数据对车辆进行定位,预测车辆的行驶轨迹等。
综上所述,通过上述各个环节的控制,可针对不同优先级的传感器数据形成优先级不同的数据通路,保证优先级高的数据被及时分发和处理。
以上介绍的是在线采集,在线采集与离线仿真不同,离线仿真是将历史数据文件按照真实情况回放,比如辅助算法进行拍错、调试。图4为本发明实施例提供的一种传感器数据分发系统进行离线仿真的软件架构示意图。如图4所示,文件读取线程负责读取各个传感器的历史数据文件,例如IMU数据文件,GPS数据文件,并按照相应数据时间戳的顺序注入到系统中,模拟真实的车上传感器数据采集分发系统。在采集到历史数据文件后,后续各线程池对历史数据文件进行处理的过程与上述在线采集的过程相同,此处不再赘述。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本发明实施例公开的一种传感器数据分发系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种传感器数据分发系统,应用于自动驾驶的主机端,其特征在于,所述系统包括:监听单元、第一数据处理单元、数据分发单元、数据接收单元、通信单元和第二数据处理单元;其中,
所述监听单元,被配置为:当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将所述传感器数据分发到第一数据处理单元,其中,所述实时线程包括高实时线程和低实时线程;所述高实时线程用于监听高优先级的传感器数据,所述低实时线程用于监听低优先级的传感器数据;
所述第一数据处理单元,被配置为:所述第一数据处理单元中的第一数据处理线程池按照所述传感器数据的优先级对所述传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元;
所述数据分发单元,被配置为:所述数据分发单元中的数据发送线程池根据所述传感器数据的优先级依次将所述传感器数据通过通信单元发送给数据接收单元;
所述数据接收单元,被配置为:所述数据接收单元中的数据接收线程池将所述传感器数据分发到第二数据处理单元中的第二数据处理线程池,以供所述第二数据处理线程池进行处理;
其中,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池的优先级与所述传感器数据的优先级一致,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池中的线程数量、优先级和调度策略是根据所述传感器数据的优先级、频率和数据量创建的。
2.根据权利要求1所述的系统,其特征在于,所述监听单元具体被配置为:
在将所述传感器数据分发到第一数据处理单元之后,继续执行监听操作。
3.根据权利要求1所述的系统,其特征在于,所述通信单元具体被配置为:
通过预先配置的共享内存或消息队列机制建立所述数据分发单元和所述数据接收单元之间的通信连接。
4.根据权利要求1所述的系统,其特征在于,所述传感器数据为实时获取的传感器数据或者历史传感器数据。
5.根据权利要求1所述的系统,其特征在于,所述高优先级的传感器数据包括惯性测量单元IMU数据,所述低优先级的传感器数据包括全球定位系统GPS数据和轮速传感器ODO数据。
6.一种传感器数据分发系统,其特征在于,包括第一主机和第二主机,所述第一主机和所述第二主机按照通信模块中预先配置的通信方式建立通信连接;其中,
所述第一主机包括驱动模块和第一数据分发模块,所述第二主机包括第二数据分发模块;所述第一数据分发模块包括监听单元,第一数据处理单元和数据分发单元;所述第二数据分发模块包括数据接收单元、第二数据处理单元和预设算法单元;其中,
所述监听单元,被配置为当监听单元中的实时线程监听到与该线程的优先级相对应的传感器数据到来时,将所述传感器数据分发到第一数据处理单元,其中,所述实时线程包括高实时线程和低实时线程;所述高实时线程用于监听高优先级的传感器数据,所述低实时线程用于监听低优先级的传感器数据;
所述第一数据处理单元,被配置为所述第一数据处理单元中的第一数据处理线程池按照所述传感器数据的优先级对所述传感器数据进行依次处理,并将处理完成后的数据传递给传感器数据分发单元;
所述数据分发单元,被配置为所述数据分发单元中的数据发送线程池根据所述传感器数据的优先级依次将所述传感器数据通过所述通信模块发送给数据接收单元;
所述数据接收单元,被配置为所述数据接收单元中的数据接收线程池将所述传感器数据分发到第二数据处理单元中的第二数据处理线程池,以供所述第二数据处理线程池进行处理;
所述第二数据处理单元,被配置为在所述第二数据处理线程池完成对所述传感器数据处理后,将所述传感器数据发送到所述预设算法单元,所述预设算法单元通过预设回调函数对所述第二数据处理单元发送的传感器数据进行处理;
其中,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池的优先级与所述传感器数据的优先级一致,所述第一数据处理线程池、所述数据发送线程池、所述数据接收线程池和所述第二数据处理线程池中的线程数量、优先级和调度策略是根据所述传感器数据的优先级、频率和数据量创建的。
7.根据权利要求6所述的系统,其特征在于,所述通信模块中预先配置的通信方式为通过socket进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910195082.2A CN111766853B (zh) | 2019-03-14 | 2019-03-14 | 一种传感器数据分发系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910195082.2A CN111766853B (zh) | 2019-03-14 | 2019-03-14 | 一种传感器数据分发系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111766853A CN111766853A (zh) | 2020-10-13 |
CN111766853B true CN111766853B (zh) | 2023-12-19 |
Family
ID=72717935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910195082.2A Active CN111766853B (zh) | 2019-03-14 | 2019-03-14 | 一种传感器数据分发系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111766853B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624608A (zh) * | 2012-01-16 | 2012-08-01 | 华南理工大学 | 一种提高智能传感器即插即用速度的多接入等级动态退避方法 |
CN103517348A (zh) * | 2013-10-09 | 2014-01-15 | 中国联合网络通信集团有限公司 | 一种基于数据优先级的数据传输方法和网关 |
CN109144698A (zh) * | 2018-08-30 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 数据获取方法、事件分发器、设备、介质和无人车 |
CN109343976A (zh) * | 2018-09-24 | 2019-02-15 | 北京技德终端技术有限公司 | 一种单任务实时消息传递操作系统 |
CN109445959A (zh) * | 2018-10-17 | 2019-03-08 | 北京技德终端技术有限公司 | 一种传感器数据处理实时操作系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9915950B2 (en) * | 2013-12-31 | 2018-03-13 | Polysync Technologies, Inc. | Autonomous vehicle interface system |
-
2019
- 2019-03-14 CN CN201910195082.2A patent/CN111766853B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624608A (zh) * | 2012-01-16 | 2012-08-01 | 华南理工大学 | 一种提高智能传感器即插即用速度的多接入等级动态退避方法 |
CN103517348A (zh) * | 2013-10-09 | 2014-01-15 | 中国联合网络通信集团有限公司 | 一种基于数据优先级的数据传输方法和网关 |
CN109144698A (zh) * | 2018-08-30 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 数据获取方法、事件分发器、设备、介质和无人车 |
CN109343976A (zh) * | 2018-09-24 | 2019-02-15 | 北京技德终端技术有限公司 | 一种单任务实时消息传递操作系统 |
CN109445959A (zh) * | 2018-10-17 | 2019-03-08 | 北京技德终端技术有限公司 | 一种传感器数据处理实时操作系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111766853A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4410661B2 (ja) | 分散制御システム | |
KR101444990B1 (ko) | 멀티프로세서 코어 시스템에서 에너지 효율적 네트워크 패킷 프로세싱을 실행하기 위한 방법 및 장치 | |
US8352710B2 (en) | Off-loading of processing from a processor blade to storage blades | |
US20150163172A1 (en) | Server switch integration in a virtualized system | |
US9921868B2 (en) | Cooperated interrupt moderation for a virtualization environment | |
CN100538684C (zh) | Dma控制器、节点、数据传送控制方法 | |
EP2157511B1 (fr) | Procédé d'acheminement d'un signal d'interruption directement vers une unité de traitement virtuelle dans un système à une ou plusieurs unités de traitement physiques | |
US7809875B2 (en) | Method and system for secure communication between processor partitions | |
US11709620B2 (en) | Methods and systems for memory management in a publish and subscribe system | |
JP2010027062A (ja) | 分散制御システム | |
US10735294B2 (en) | Integrating a communication bridge into a data processing system | |
EP2904765B1 (en) | Method and apparatus using high-efficiency atomic operations | |
CN116880773B (zh) | 一种内存扩展装置及数据处理方法、系统 | |
CN111475263A (zh) | 事件处理方法、设备及存储介质 | |
CN114355866A (zh) | 无人驾驶远程接管系统 | |
CN111766853B (zh) | 一种传感器数据分发系统 | |
CN115361348B (zh) | 由数据采集设备执行的与web浏览器通信的方法 | |
JPH07287064A (ja) | レーダ信号処理装置 | |
US10334041B2 (en) | Network interface device facilitating transaction assurance | |
US20220159070A1 (en) | Methods and systems for enabling publish-subscribe message transmission in a distributed environment | |
CN113220473B (zh) | 数据存储方法及系统 | |
US7469267B2 (en) | Method and system for host device event synchronization | |
CN114819176A (zh) | 一种面向智能驾驶的实时分布式系统 | |
US8380938B2 (en) | Providing shared access to data storage resources across cluster computing environment boundaries | |
US20220155975A1 (en) | Methods and systems for providing a lockless access to a shared memory region in a publish and subscribe system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220303 Address after: 100083 unit 501, block AB, Dongsheng building, No. 8, Zhongguancun East Road, Haidian District, Beijing Applicant after: BEIJING MOMENTA TECHNOLOGY Co.,Ltd. Address before: Room 28, 4 / F, block a, Dongsheng building, No. 8, Zhongguancun East Road, Haidian District, Beijing 100089 Applicant before: BEIJING CHUSUDU TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |