一种用于融合感知的可视化调试方法、设备、介质与流程

专利2023-06-24  123



1.本发明涉及自动驾驶技术领域,尤其涉及一种用于融合感知的可视化调试方法、设备、介质。


背景技术:

2.目前,自动驾驶中融合感知的可视化调试是基于ros系统的消息机制。它是将需要可视化的数据,包括从雷达传感器中获取的点云数据,摄像头获取的图像数据,点云中的物体数据,图像中的障碍物数据等以消息的方式发送给ros系统。我们在调试系统功能时,通过使用ros自带的rviz工具在运行系统的同时查看调试数据信息,包括融合感知的原始数据,处理结果等重要信息,从而实现我们查找问题的目的。
3.主要缺陷在于:
4.使用rivz工具进行可视化调试的方法比较占用系统资源,严重情况将会影响模拟仿真的真实性和实时性。融合感知系统在运行状态下会频繁发送大量调试数据给rviz工具,在这个过程中,数据传输是基于ros系统的消息机制,ros系统的消息机制会影响系统的效率和实时性,从而造成模拟仿真不能复现问题。


技术实现要素:

5.本发明的目的在于提供一种用于融合感知的可视化调试方法、设备、介质,可以使用共享内存和无锁数据队列读写调试数据信息,避免数据拷贝,进程通讯的性能消耗,提高系统稳定性。
6.为实现上述目的,本发明提供如下技术方案:
7.一种用于融合感知的可视化调试方法,所述方法包括:
8.s101-启动感知系统,启动共享内存管理进程;
9.s102-判断是否能够可视化调试;
10.s103-根据配置文件创建共享内存数据类型和大小,同时创建本地队列和共享内存队列;
11.s104-感知系统保存调试数据到本地队列;
12.s105-队列管理任务从本地队列中取出数据保存到共享内存队列;
13.s106-可视化工具从共享内存队列中获取数据进行显示;
14.s107-结束执行;
15.其中若s102中判断为是,则继续执行s103-s107;若s102中判断为否,则直接执行s107。
16.基于上述技术方案,本发明进一步设置,共享内存数据类型包括雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据以及图像检测结果。
17.基于上述技术方案,本发明进一步设置,s106中可视化工具通过从各自指定的共享内存队列中获取点云数据进行显示查看雷达数据信息、摄像头数据信息、雷达检测结果、
数据分割、摄像头图像数据、图像检测结果。
18.基于上述技术方案,本发明进一步设置,调试数据的结构包括原始数据类型、数据长度、调试数据类型、以及原始数据,上述数据将会根据数据类型不同被存放进不同的队列,其中感知系统中会创建单独的任务将调试数据保存进本地队列中。
19.基于上述技术方案,本发明进一步设置,本地队列通过高效无锁消息队列实现,其实现方式为:将调试数据包装成消息的格式保存到队列,设置一个固定长度的阈值,即在本地调试数据达到阈值长度时再将调试数据写入本地队列数据。
20.基于上述技术方案,本发明进一步设置,调试数据保存到共享内存的数据队列时,采用阈值方法进行数据保存,减少数据拷贝次数,共享内存数据结构使用一块连续的内存,不同类型的调试数据根据数据长度,在共享内存上分配不同的起始地址,根据不同类型的调试数据,在共享内存上的起始地址段开始映射数据队列,该数据队列需要使用锁和条件变量进行数据同步工作。
21.基于上述技术方案,本发明进一步设置,数据队列采用首位双指针控制方法,具体实现方法如下:其中队列首端指针为s,队列末端指针为e,在有新数据入队时,移动末端指针e的位置到e的下一个相邻地址,当e的位置移动到该段共享内存的末端时,将位置移动到该段内存地址的首端,即循环加入数据。当从数据队列中取数据时,移动首端地址s的位置到下一个与s相邻地址,当s移动到该段内存末端时,将s位置移动到该段内存地址首端,即循环读取数据。
22.基于上述技术方案,本发明进一步设置,可视化工具分为点云显示和图像显示,分别显示雷达传输的点云数据和摄像头传输的图像数据、中间数据和最终结果,并可以在可视化工具中进行再加工显示。
23.本发明还提供了一种电子设备,包括一个或多个处理器;存储器,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述的可视化调试方法。
24.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行
25.本发明的有益效果:本方案所提供的的方法很好的解决了融合感知系统在调试时显示雷达点云和摄像头图像数据的传输问题,保证系统性能稳定,调试方便。
附图说明
26.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
27.图1为本发明实施例的流程图。
具体实施方式
28.以下将配合附图及实施例来详细说明本技术的实施方式,借此对本技术如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
29.本发明为一种用于融合感知的可视化调试方法,所述方法包括:
30.s101-启动感知系统,启动共享内存管理进程;
31.s102-判断是否能够可视化调试;
32.s103-根据配置文件创建共享内存数据类型和大小,同时创建本地队列和共享内存队列;
33.s104-感知系统保存调试数据到本地队列;
34.s105-队列管理任务从本地队列中取出数据保存到共享内存队列。
35.s106-可视化工具从共享内存队列中获取数据进行显示。
36.s107-结束执行;
37.其中若s102中判断为是,则继续执行s103-s107;若s102中判断为否,则直接执行s107。
38.共享内存数据类型包括雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据以及图像检测结果。
39.s106中可视化工具通过从各自指定的共享内存队列中获取点云数据进行显示查看雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据、图像检测结果。
40.调试数据的结构包括原始数据类型、数据长度、调试数据类型、以及原始数据,上述数据将会根据数据类型不同被存放进不同的队列,其中感知系统中会创建单独的任务将调试数据保存进本地队列中。
41.本地队列通过高效无锁消息队列实现,其实现方式为:将调试数据包装成消息的格式保存到队列,设置一个固定长度的阈值,即在本地调试数据达到阈值长度时再将调试数据写入本地队列数据。
42.调试数据保存到共享内存的数据队列时,采用阈值方法进行数据保存,减少数据拷贝次数,共享内存数据结构使用一块连续的内存,不同类型的调试数据根据数据长度,在共享内存上分配不同的起始地址。根据不同类型的调试数据,在共享内存上的起始地址段开始映射数据队列,该数据队列需要使用锁和条件变量进行数据同步工作。
43.数据队列采用首位双指针控制方法,具体实现方法如下:其中队列首端指针为s,队列末端指针为e,在有新数据入队时,移动末端指针e的位置到e的下一个相邻地址,当e的位置移动到该段共享内存的末端时,将位置移动到该段内存地址的首端,即循环加入数据。当从数据队列中取数据时,移动首端地址s的位置到下一个与s相邻地址,当s移动到该段内存末端时,将s位置移动到该段内存地址首端,即循环读取数据。
44.可视化工具分为点云显示和图像显示,分别显示雷达传输的点云数据和摄像头传输的图像数据、中间数据和最终结果,并可以在可视化工具中进行再加工显示。
45.本发明还提供了一种电子设备,包括一个或多个处理器;存储器,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述的可视化调试方法。
46.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行所述的可视化调试方法。
47.本方案所提供的的方法很好的解决了融合感知系统在调试时显示雷达点云和摄像头图像数据的传输问题,保证系统性能稳定,调试方便。
48.具体来说:本发明的基本流程如下:
49.基本构思:可以使用共享内存和无锁数据队列读写调试数据信息,避免数据拷贝,进程通讯的性能消耗,提高系统稳定性。
50.具体实施例:
51.如图1,基本流程为:
52.a)创建不同类型的共享内存数据队列;
53.b)在单独线程中使用高效队列方式将调试数据保存到共享内存中:
54.感知系统启动时,根据配置是否启用共享内存来配合可视化调试。如果启用共享内存,则创建本地任务队列,创建共享内存队列保存雷达数据,摄像头数据,中间结果,处理完成之后的结果数据。
55.如果需要查看雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据、图像检测结果等信息可以使用点云可视化工具从各自指定的共享内存队列中获取点云数据进行显示即可。可视化工具仅仅进行数据显示,不进行任何操作。感知系统和可视化工具之间数据传递是通过异步执行方式,感知系统和可视化工具之间互不干扰。
56.首先,实现感知程序中调试数据的结构,包括原始数据类型,数据长度,调试数据类型,以及原始数据。这些数据将会根据数据类型不同存放进不同的队列。融合感知系统中会创建单独的任务将调试数据保存进本地的缓存队列中,同时,新的线程任务会不断的从本地缓存中读取调试数据保存到共享内存的数据队列。因为数据保存到共享内存中要比数据保存到本地缓存中效率低,为了不影响融合感知系统的实时性,所以需要在本地创建一个缓存队列,用于减少感知程序保存调试数据所产生的时间。
57.其次,我们使用高效无锁消息队列作为本地缓存队列的实现。我们将调试数据包装成消息的格式保存到队列,为了再一次降低数据保存到队列时的时间损失,我们将会设置一个固定长度的阈值,即在本地调试数据达到阈值长度时再将调试数据写入缓存队列数据。同时,在将调试数据保存到共享内存的数据队列时,同样采用阈值方法进行数据保存,减少数据拷贝次数。共享内存数据结构则使用一块连续的内存,不同类型的调试数据根据数据长度,在共享内存上分配不同的起始地址。根据不同类型的调试数据,在共享内存上的起始地址段开始映射数据队列,该数据队列需要使用锁和条件变量进行数据同步工作。数据队列采用首位双指针控制方法,具体实现方法如下:
58.我们假设队列首端指针为s,队列末端指针为e。在有新数据入队时,移动末端指针e的位置到e的下一个相邻地址,当e的位置移动到该段共享内存的末端时,将位置移动到该段内存地址的首端,即循环加入数据。当从数据队列中取数据时,移动首端地址s的位置到下一个与s相邻地址,当s移动到该段内存末端时,将s位置移动到该段内存地址首端,即循环读取数据。这样我们就在共享内存上实现了fifo的队列功能,队列大小就是我们配置的内存大小,而内存大小是和数据类型绑定。这样就保证可视化工具在从共享内存中读取数据时始终是最早的数据,如果数据队列没有占满,则不会出现掉帧情况。
59.第三,创建对应的可视化工具。可视化工具分为点云显示和图像显示,分别显示雷达传输的点云数据和摄像头传输的图像数据,中间数据和最终结果可以在可视化工具中进行再加工显示。
60.如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名
称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。
61.需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
62.上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

技术特征:
1.一种用于融合感知的可视化调试方法,其特征在于,所述方法包括:s101-启动感知系统,启动共享内存管理进程;s102-判断是否能够可视化调试;s103-根据配置文件创建共享内存数据类型和大小,同时创建本地队列和共享内存队列;s104-感知系统保存调试数据到本地队列;s105-队列管理任务从本地队列中取出数据保存到共享内存队列;s106-可视化工具从共享内存队列中获取数据进行显示;s107-结束执行;其中若s102中判断为是,则继续执行s103-s107;若s102中判断为否,则直接执行s107。2.如权利要求1所述的一种用于融合感知的可视化调试方法,其特征在于,共享内存数据类型包括雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据以及图像检测结果。3.如权利要求2所述的一种用于融合感知的可视化调试方法,其特征在于,s106中可视化工具通过从各自指定的共享内存队列中获取点云数据进行显示查看雷达数据信息、摄像头数据信息、雷达检测结果、数据分割、摄像头图像数据、图像检测结果。4.如权利要求3所述的一种用于融合感知的可视化调试方法,其特征在于,调试数据的结构包括原始数据类型、数据长度、调试数据类型、以及原始数据,上述数据将会根据数据类型不同被存放进不同的队列,其中感知系统中会创建单独的任务将调试数据保存进本地队列中。5.如权利要求4所述的一种用于融合感知的可视化调试方法,其特征在于,本地队列通过高效无锁消息队列实现,其实现方式为:将调试数据包装成消息的格式保存到队列,设置一个固定长度的阈值,即在本地调试数据达到阈值长度时再将调试数据写入本地队列数据。6.如权利要求5所述的一种用于融合感知的可视化调试方法,其特征在于,调试数据保存到共享内存的数据队列时,采用阈值方法进行数据保存,减少数据拷贝次数,共享内存数据结构使用一块连续的内存,不同类型的调试数据根据数据长度,在共享内存上分配不同的起始地址,根据不同类型的调试数据,在共享内存上的起始地址段开始映射数据队列,该数据队列需要使用锁和条件变量进行数据同步工作。7.如权利要求6所述的一种用于融合感知的可视化调试方法,其特征在于,数据队列采用首位双指针控制方法,具体实现方法如下:其中队列首端指针为s,队列末端指针为e,在有新数据入队时,移动末端指针e的位置到e的下一个相邻地址,当e的位置移动到该段共享内存的末端时,将位置移动到该段内存地址的首端,即循环加入数据,当从数据队列中取数据时,移动首端地址s的位置到下一个与s相邻地址,当s移动到该段内存末端时,将s位置移动到该段内存地址首端,即循环读取数据。8.如权利要求7所述的一种用于融合感知的可视化调试方法,其特征在于,可视化工具分为点云显示和图像显示,分别显示雷达传输的点云数据和摄像头传输的图像数据、中间数据和最终结果,并可以在可视化工具中进行再加工显示。9.一种电子设备,其特征在于,包括一个或多个处理器;存储器,配置为存储一个或多
个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现权利要求1-8所述的可视化调试方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行权利要求1-8所述的可视化调试方法。

技术总结
本发明为一种用于融合感知的可视化调试方法,所述方法包括:S101-启动感知系统,启动共享内存管理进程;S102-判断是否能够可视化调试;S103-根据配置文件创建共享内存数据类型和大小,同时创建本地队列和共享内存队列;S104-感知系统保存调试数据到本地队列;S105-队列管理任务从本地队列中取出数据保存到共享内存队列;S106-可视化工具从共享内存队列中获取数据进行显示;S107-结束执行;其中若S102中判断为是,则继续执行S103-S107;若S102中判断为否,则直接执行S107。本发明可以使用共享内存和无锁数据队列读写调试数据信息,避免数据拷贝,进程通讯的性能消耗,提高系统稳定性。定性。定性。


技术研发人员:王瑞 张广鹏 何贝 刘鹤云 张岩
受保护的技术使用者:北京斯年智驾科技有限公司
技术研发日:2022.07.20
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-3482.html

最新回复(0)