基于共享内存的点云数据发送方法、装置及电子设备与流程

专利2026-02-13  18


本发明涉及数据通讯领域,尤其涉及一种基于共享内存的点云数据发送方法、装置及电子设备。


背景技术:

1、在自动驾驶场景中,激光雷达是一种关键的传感器,用于感知车辆周围环境并生成高分辨率的点云数据。激光雷达具有高度可靠性、精准的位置信息和对环境变化的灵敏度,能够提供丰富的原生3d场景信息,对于实现车辆定位、障碍物检测和环境建模至关重要。激光雷达生成的点云数据通常具有较大的数据量,这在传输和处理过程中可能会带来挑战。在用于机器人开发的软件平台(robot operating system 2,ros2)框架中,默认的消息传输模式可能不够优化,导致在点云传输过程中丢帧现象严重,在同一台域控(domaincontroller)中,数据传输通常涉及对数据进行内存拷贝和遵循网络协议,这可能引入额外的性能开销。

2、由于不同型号的激光雷达所发送的激光点云数据量大小存在差异,激光点云数据中所包含的数据类型也存在不同,导致在进行激光点云消息传递时无法精准适配与之最合适的消息传递内存结构,如选择较大数据字段的内存结构进行传输,虽提高了兼容性,但会导致传输效率降低,如选择较小数据字段的内存结构进行传输,在进行合并时将花费大量时间,进而导致传输效率降低。

3、而目前并没有一种能够解决上述技术问题的技术方案,并没有一种基于共享内存的点云数据发送方法、装置及电子设备。


技术实现思路

1、本发明提供了一种基于共享内存的点云数据发送方法、装置及电子设备,采用改进后的共享内存技术,根据目标激光雷达的型号选择最匹配的目标内存结构进行激光点云消息传递,不仅能够降低丢帧率,还能够提高传输效率。

2、第一方面,本发明提供了一种基于共享内存的点云数据发送方法,包括:

3、根据目标激光雷达的型号,从预设共享内存结构库中确定出目标内存结构;

4、根据所述目标内存结构,将所述目标激光雷达的原始点云数据调整为固定长度点云数据;

5、接收用户的第一输入,所述第一输入用于在消息中间件ros2中定义dds qosprofile配置文件,设置数据共享模式data_sharing为atomic,以启用共享内存传输;

6、响应于所述第一输入,向订阅目标激光雷达点云数据的接收端发送所述固定长度点云数据;

7、所述预设共享内存结构库包括不同激光雷达的型号与每一激光雷达的型号对应的内存结构的对应关系。

8、根据本发明提供的基于共享内存的点云数据发送方法,在根据目标激光雷达的型号,从预设共享内存结构库中确定出目标内存结构之前,所述方法包括:

9、对于不同型号的激光雷达,根据所述激光雷达确定所有点云数据中字符串的最大消息长度;

10、根据所述最大消息长度确定所述激光雷达对应的固定长度内存结构;

11、遍历所有不同型号的激光雷达,直至确定每一激光雷达对应的固定长度内存结构,存储所有激光雷达对应的每一固定长度内存结构至所述预设共享内存结构库。

12、根据本发明提供的基于共享内存的点云数据发送方法,所述根据所述激光雷达的型号确定所有点云数据中字符串的最大消息长度,包括:

13、获取所有点云数据,对于每一字符串数据,根据预设字段确定所述字符串数据的消息长度;

14、遍历所有字符串数据,将所有字符串数据中长度最大的消息长度确定为字符串的最大消息长度;

15、对于稀疏结构的点云消息,所述预设字段为width字段;

16、对于非稀疏结构的点云消息,所述预设字段为height字段与width字段的乘积。

17、根据本发明提供的基于共享内存的点云数据发送方法,所述根据所述最大消息长度确定所述激光雷达对应的固定长度内存结构,包括:

18、在所述最大消息长度处于第一长度区间,且所述激光雷达至少具备产生时间戳数据和坐标信息的能力的情况下,确定第一长度内存结构为固定长度内存结构,所述第一长度内存结构包括时间戳数据和坐标信息;

19、在所述最大消息长度处于第二长度区间,且所述激光雷达至少具备产生时间戳数据、坐标信息以及反射强度信息的能力的情况下,确定第二长度内存结构为固定长度内存结构,所述第二长度内存结构包括时间戳数据、坐标信息以及反射强度信息;

20、在所述最大消息长度处于第三长度区间,且所述激光雷达至少具备产生时间戳数据、坐标信息、反射强度信息以及颜色信息的能力的情况下,确定第三长度内存结构为固定长度内存结构,所述第三长度内存结构包括时间戳数据、坐标信息、反射强度信息以及颜色信息;

21、所述第一长度区间小于所述第二长度区间,所述第二长度区间小于所述第三长度区间;所述坐标信息包括三维坐标信息或二维坐标信息。

22、根据本发明提供的基于共享内存的点云数据发送方法,所述根据所述目标内存结构,将所述目标激光雷达的原始点云数据调整为固定长度点云数据,包括:

23、在原始点云数据的长度小于所述目标内存结构的长度的情况下,在所述原始点云数据的数据位后进行补零填充,形成所述固定长度点云数据;

24、在原始点云数据的长度大于所述目标内存结构的长度的情况下,生成警告指令,所述警告指令用于发出警告并退出当前程序运行。

25、根据本发明提供的基于共享内存的点云数据发送方法,在接收用户的第一输入之前,所述方法还包括:

26、接收用户的第二输入,所述第二输入用于将消息传输模式设置为异步发送,并设置数据可靠性为模式best_effort。

27、根据本发明提供的基于共享内存的点云数据发送方法,在向订阅目标激光雷达点云数据的接收端发送所述固定长度点云数据之后,所述方法还包括:

28、在确定用于存储共享内存文件的文件夹中包括实时发布订阅传输中间件库fastrtps对应文件的情况下,确定已启用共享内存传输。

29、根据本发明提供的基于共享内存的点云数据发送方法,在确定已启用共享内存传输之后,所述方法还包括:

30、每间隔预设时长,接收用户的第三输入,所述第三输入用于查看当前传输的消息发布频率;

31、在确定所述消息发布频率小于预设频率的情况下,生成检查指令,所述检查指令用于检查共享内存传输的配置参数。

32、第二方面,提供了一种基于共享内存的点云数据发送装置,包括:

33、确定单元,所述确定单元用于根据目标激光雷达的型号,从预设共享内存结构库中确定出目标内存结构;

34、调整单元,所述调整单元用于根据所述目标内存结构,将所述目标激光雷达的原始点云数据调整为固定长度点云数据;

35、接收单元,所述接收单元用于接收用户的第一输入,所述第一输入用于在消息中间件ros2中定义dds qos profile配置文件,设置数据共享模式data_sharing为atomic,以启用共享内存传输;

36、响应单元,所述响应单元用于响应于所述第一输入,向订阅目标激光雷达点云数据的接收端发送所述固定长度点云数据;

37、所述预设共享内存结构库包括不同激光雷达的型号与每一激光雷达的型号对应的内存结构的对应关系。

38、第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于共享内存的点云数据发送方法。

39、本发明通过共享内存的方式,简化进程间通信的机制,减少使用网络传输的复杂处理机制所带来的高延迟,确保数据在传输过程中具有一致的大小,有助于提高数据传输的效率和稳定性,减少数据包碎片化的可能性,在确定激光雷达型号对应的内存结构前,首先确定每个型号雷达的最大消息长度,以规划固定长度内存结构,使得数据存储在共享内存中更加紧凑和一致,有助于提高数据的传输效率和降低系统资源的占用;

40、本发明还将消息传输模式设置为异步发送,降低传输时延,提高消息的实时性和响应性,同时确保在网络拥塞或数据丢失的情况下仍然能够保证数据的发送,从而提升系统的稳定性;定期检查消息发布频率,并在需要时进行参数检查以确保传输配置的准确性和性能,有效地优化共享内存传输的配置参数,确保数据的稳定传输并避免数据丢失或延迟。


技术特征:

1.一种基于共享内存的点云数据发送方法,其特征在于,包括:

2.根据权利要求1所述的基于共享内存的点云数据发送方法,其特征在于,在根据目标激光雷达的型号,从预设共享内存结构库中确定出目标内存结构之前,所述方法包括:

3.根据权利要求2所述的基于共享内存的点云数据发送方法,其特征在于,所述根据所述激光雷达的型号确定所有点云数据中字符串的最大消息长度,包括:

4.根据权利要求2所述的基于共享内存的点云数据发送方法,其特征在于,所述根据所述最大消息长度确定所述激光雷达对应的固定长度内存结构,包括:

5.根据权利要求1所述的基于共享内存的点云数据发送方法,其特征在于,所述根据所述目标内存结构,将所述目标激光雷达的原始点云数据调整为固定长度点云数据,包括:

6.根据权利要求1所述的基于共享内存的点云数据发送方法,其特征在于,在接收用户的第一输入之前,所述方法还包括:

7.根据权利要求1所述的基于共享内存的点云数据发送方法,其特征在于,在向订阅目标激光雷达点云数据的接收端发送所述固定长度点云数据之后,所述方法还包括:

8.根据权利要求7所述的基于共享内存的点云数据发送方法,其特征在于,在确定已启用共享内存传输之后,所述方法还包括:

9.一种基于共享内存的点云数据发送装置,其特征在于,包括:

10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述基于共享内存的点云数据发送方法。


技术总结
本发明提供了一种基于共享内存的点云数据发送方法、装置及电子设备,涉及数据通讯领域,该方法包括:根据目标激光雷达的型号,从预设共享内存结构库中确定出目标内存结构;根据目标内存结构,将目标激光雷达的原始点云数据调整为固定长度点云数据;第一输入用于在消息中间件ROS2中定义DDS QoS Profile配置文件,设置数据共享模式Data_Sharing为Atomic,以启用共享内存传输;向订阅目标激光雷达点云数据的接收端发送固定长度点云数据。本发明在确定激光雷达型号对应的内存结构前,首先确定每个型号雷达的最大消息长度,以规划固定长度内存结构,使得数据存储在共享内存中更加紧凑和一致,有助于提高数据的传输效率和降低系统资源的占用。

技术研发人员:汪卓,曹晶
受保护的技术使用者:武汉环宇智行科技有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-29718.html