自动驾驶车辆实时监控视频传输系统的制作方法

文档序号:31130189发布日期:2022-08-13 05:19阅读:324来源:国知局
自动驾驶车辆实时监控视频传输系统的制作方法

1.本技术涉及自动驾驶车辆视频数据采集传输技术领域,尤其涉及一种自动驾驶车辆实时监控视频传输系统。


背景技术:

2.自动驾驶车辆的车载摄像头采集的视频数据一方面要用于车辆感知模块的检测和识别,另一方面用于云端车辆管理系统的视频实时监控。
3.目前,现有技术主要存在两种解决方案。一种是通过布置两套摄像头,分别将视频数据传输给车辆感知模块和车辆管理系统。一种是将车载摄像头的数据,通过ros(robot operating system)节点的形式发布视频图像消息(topic),再分别由车辆感知模块和视频上传模块订阅获取视频图像消息。感知模块获取到视频图像数据后进行检测和识别处理,视频上传模块则将视频数据通过网络传输至云端车辆管理系统。
4.然而现有技术的弊端是:两套摄像头的方案增加了自动驾驶车辆的成本,而且导致远程监控的视频与车辆感知的视频无法同步ros节点发布消息的方案传输效率低。ros采用的是中心化的网络传输方式,进程间通信采用socket方式。网络通信过程中涉及内核态与用户态的多次切换,节点间的通信以及数据的序列化和反序列化会占用大量的cpu和内存资源,造成通信的延迟,降低视频传输的实时性。
5.ros节点发布消息的方案存在不稳定的风险。如果主节点master崩溃,通信就会瘫痪,视频数据无法进行传输,感知模块和云端车辆管理系统都无法收到数据。另外,如果某些节点占用大量系统资源,会导致整个ros通信的效率下降,从而引起视频数据传输效率下降。


技术实现要素:

6.为了解决上述技术问题,本技术实施例提供一种自动驾驶车辆实时监控视频传输系统,采用一套车载摄像头,解决视频上传的问题,避免ros系统不稳定引起的中断和传输性能下降。
7.本技术实施例提供了一种自动驾驶车辆实时监控视频传输系统,包括:
8.视频收发模块,监视并获取车载摄像的视频数据;
9.数据消息模块,以ros-消息的形式将视频收发模块内的数据发布;
10.共享内存模块,存在于视频收发模块的内存中,存储最新的视频收发模块中的视频数据;
11.车辆感知模块,以ros通信方式订阅数据消息模块发布的消息或挂载共享内存模块以获取视频数据;
12.软件上传模块,通过查找并挂载共享内存模块获取视频数据,将所访问的视频数据通过网络实时推送至云端车辆管理系统。
13.进一步地,视频收发模块每次初始化成一个ros节点,同时在内存中开辟出一块空
间作为共享内存模块。
14.进一步地,视频收发模块具备开机自启动功能,初始化成ros节点形成失败时,仍开辟共享内存模块。
15.进一步地,每当车载摄像采集到视频数据时,视频收发模块通过ros-消息的方式进行发布,同将视频数据写入共享内存模块中。
16.进一步地,共享内存模块的大小不低于一张图片的大小。
17.进一步地,共享内存模块每次收到一组数据后立即更新,删除之前保存的数据或者仅保留之前数据的部分帧数据。
18.进一步地,共享内存模块中设置有存储队列,以用于保存之前数据的部分帧数据,防止丢失部分数据帧。
19.进一步地,车辆感知模块以ros通信方式订阅数据消息模块发布的消息的方式优先级高于以挂载共享内存模块获取视频数据的方式的优先级。
20.进一步地,车辆感知模块初始化为ros节点后以ros通信方式订阅数据消息模块发布的消息,若初始化为ros节点失败,则车辆感知模块以挂载共享内存模块以获取视频数据。
21.进一步地,在视频收发模块初始化成ros节点形成失败时,车辆感知模块直接以挂载共享内存模块方式获取视频数据。
22.在本技术实施例中,1)自动驾驶车辆的摄像头复用,车辆感知模块与云端车辆管理系统视频数据同步;2)采用监听摄像头设备的方式,实现视频数据的同步获取,提供数据的实时性;3)通过共享内存的方式完成视频数据的共享,提高了数据的传输效率,保证了数据实时性和可靠性。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例提供的系统模块示意图。
具体实施方式
25.为使得本技术的申请目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本技术一部分实施例,而非全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
26.下面结合附图和具体实施例,进一步阐明本发明。
27.在本技术的描述中,需要理解的是,术语“上”、“下”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,
因此不能理解为对本技术的限制。
28.针对现有技术中的缺点,有一些现有的方案采用两套摄像头的方案,然而两套摄像头的安装角度肯定不一样,两套系统的获取的数据也不一样,远程监控观察到画面与车辆本身感知模块的画面会出现不一样的情况。此外如果采用两套摄像头的方案,摄像头的数据传输链路也是两条,车辆感知模块使用的数据直接连到工控机,远程监控的数据完全通过网络传输,不经过工控机,但是这会导致传输链路的延迟不一样,进而出现画面不同步的情况。
29.因此,本技术提出了一种自动驾驶车辆实时监控视频传输系统,采用一套摄像头,同时采用ros节点通信方式,能够兼容现有的各个系统,使用起来适配性更高。
30.整个系统包括了视频收发模块、车辆感知模块和软件上传模块。
31.车载摄像头通过线缆连接工控机,车载摄像头为gmsl(gigabit multimedia serial link)摄像头,视频收发模块监视并获取车载摄像的视频数据。
32.视频收发模块具备开机自启动功能,每次初始化成一个ros节点,同时在内存中开辟出一块空间作为共享内存模块。如果视频收发模块初始化成ros节点形成失败时,仍开辟共享内存模块。在只有共享内存模块的情况下,车辆感知模块和视频收发模块均只能通过这个方式获取数据。如果共享内存模块也创建失败则抛出异常,无法启动。此过程记录到日志文件中。
33.作为一个具体的实施例,系统启动后,视频收发模块初始化为一个ros节点,同时在内存中开辟一块空间作为共享内存,再通过调用摄像头设备sdk(software development kit)提供的api接口,设置回调模块。
34.每当摄像头采集到视频数据,回调模块就会执行,考虑到ros节点之间通过发布和订阅话题来传递消息,因此将视频数据通过ros-消息的方式发布出来,同时将视频数据写入共享内存模块,使得共享内存的数据维持最新的。
35.作为一个具体的实施例,共享内存的大小只要是一张图片的大小就可以,每次收到一组数据,就会更新,之前的数据不需要保存。当然作为另一个方案,也可以增加一个队列保存几帧数据,防止丢失部分数据帧。
36.共享内存模块直接通过读写内存完成数据传输,减少传输中的数据拷贝,显著提升传输效率,同时,共享内存模块传输延迟比socket节省一半,但cpu资源占用要比socket减少很多。
37.共享内存模块的存在,相比单纯用ros节点间数据传输来说,ros节点间数据传输均是通过网络来实现的,这样做虽然更具普遍性,照顾到ros节点可能架设在不同的硬件上这一点,然而对于在同一台设备的两个节点间传输数据是非常不友好的,因为ros节点间的数据传输在不同设备之间的使用会具备通用性且传输效果良好,但是在同一设备上来说,远没有其他方式的传输效果好,效率低下,容易造成网络堵塞,延时严重。此外,ros网络传输过程中,涉及到io到内存的数据传输,尤其收发双方都要进行,这样会发生序列化与反序列化,系统内核态与用户态进行切换,这样对于系统负荷相对较大。
38.本技术中,视频收发模块通过监听获取摄像头视频数据的方式实现与视频数据的采集完全同步,比通过轮询读取摄像头设备文件的方式实时性更好。因为轮询读取摄像头设备文件无法保证得到的数据是读取时刻采集的视频数据,会造成视频数据帧的丢失,无
法保证数据一致性。
39.在视频收发模块开始工作之后,如果车辆感知模块要通过ros通信方式获取视频数据,则需要初始化为ros节点,如果节点初始化成功,则订阅软件模块发布的消息topic,来获取视频数据。如果初始化失败,则启动失败。
40.如果车辆感知模块要通过共享内存方式获取视频数据,则需要查找视频收发模块创建的共享内寸,并进行挂载。如果启动成功,可以访问内存获取视频数据。如果发生异常,则启动失败。
41.当然车辆感知模块以ros通信方式订阅数据消息模块发布的消息的方式优先级高于以挂载共享内存模块获取视频数据的方式的优先级。在视频收发模块初始化成ros节点形成失败时,车辆感知模块直接以挂载共享内存模块方式获取视频数据。
42.在共享内存模块被开辟出来后,软件上传模块查找视频收发模块创建的共享内存模块,并进行挂载,通过共享内存方式获取视频数据。如果软件上传模块启动成功,可以访问内存获取视频数据。如果发生异常,则启动失败。软件上传模块将访问共享内存模块的视频数据通过网络实时推送至云端车辆管理系统。在开机期间软件上传模块不断地将共享内存模块内的数据上传,关机后,软件上传模块不用进行上传动作,原先的共享内存模块被完全抹除,下一次开机时,共享内存模块会被重新开辟。
43.相对于ros节点通信方式,共享内存模块没有数据发布到订阅节点之间的数据拷贝,不存在网络通信过程中序列化和反序列化,减少了内核态与用户态的切换,大大降低了系统资源占用率,提高了数据传输效率,大大提高了视频数据传输的实时性。使用共享内存方式的情况下,软件上传模块不需要初始化为ros节点,不存在ros通信方式中主节点(master)的崩溃而无法传输视频数据。没有增加ros通信的负担,也降低了收其他节点因过度占用系统资源而导致视频传输性能下降的可能性。
44.以上详细描述了本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换(如数量、形状、位置等),这些等同变换均属于本发明的保护。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1