| 本文已被:浏览 4447次 下载 9391次 |
 码上扫一扫! |
|
|
| 基于共享内存的智能无人车进程间消息异步传输机制 |
|
陈存铜1,2, 赵君峤1,2, 叶晨1,2, 邓蓉1,2, 管林挺1,2,3, 李德毅1,2,4
|
|
1.同济大学 电子与信息工程学院, 上海 201800;2.同济大学 嵌入式重点实验室, 上海 201800;3.浙江海洋大学 数理与信息学院, 浙江 舟山 316022;4.总参第61研究所, 北京 100081
|
|
| 摘要: |
| 智能无人车软件系统通常由多个功能模块组成,在模块间高效、可靠地传输传感器数据以及决策和控制信息等,是智能无人车系统运行的重要保障.目前,国内外大多数智能无人车软件系统所使用的消息传输机制均基于套接字(socket),其容易部署在分布式的控制器环境中,且能满足在较小数据量下的消息快速传输.但是,随着智能无人车集成控制器性能的提升以及环境感知手段的发展,对功能模块间传输的数据量以及带宽提出了更高的要求.现有基于套接字的消息传输机制因其受网络协议的限制,需要分块传输大数据包,不仅增加了收发双方的开销,而且还增加了消息传输延迟.提出一种基于共享内存(shared memory)的智能无人车进程间消息异步传输机制,模块间通过共享内存空间进行数据交互.共享内存空间由超级块和数据块构成,通过环形队列管理数据块收发;同时,采用原子操作提高整体性能,实现图像等大数据包的有效传输.该设计应用于智能无人车模块间通信,可以明显降低数据传输时延,提高系统吞吐量.实验结果表明,该方法针对典型大数据包(如3MB)的平均传输时延为2.5ms,低于LCM的12ms以及ROS中Sharedmem_transport的3.9ms.另外,该系统的最大吞吐量达到1.1GB/s,高于LCM的180MB/s以及Sharedmem_transport的600MB/s. |
| 关键词: 共享内存 智能无人车 进程间通信 高带宽 低延迟 |
| DOI:10.13328/j.cnki.jos.005144 |
| 分类号: |
| 基金项目:中央高校基本科研业务费专项资金(20143436);同济大学青年优秀人才培养计划(2014KJ027);国家自然科学基金(41201379) |
|
| Inter-Process Asynchronous Communication in Autonomous Vehicle Based on Shared Memory |
|
CHEN Cun-Tong1,2, ZHAO Jun-Qiao1,2, YE Chen1,2, DENG Rong1,2, GUAN Lin-Ting1,2,3, LI De-Yi1,2,4
|
|
1.College of Electronics and Information Engineering, Tongji University, Shanghai 201800, China;2.Key Laboratory of Embedded System and Service Computing, Tongji University, Shanghai 201800, China;3.College of Mathematics and Information Science, Zhejiang Ocean University, Zhoushan 316022, China;4.The 61st Research Institute of General Staff Department of Chinese PLA, Beijing 100081, China
|
| Abstract: |
| Timely transmission of sensory data and control instructions is crucial between function modules of autonomous car systems. Socket-based message transmission mechanisms, e.g. LCM and IPC, are the de facto standard for this purpose because of their easy deployment and adaptability for distributed environment. However, they can no longer meet the increasing demands of high bandwidth for sharing large data packets, i.e. images and point clouds, among perception processing modules and the decision making module. The main reason is that socket-based mechanisms have to divide the large data packet into smaller data packets, which introduces extra costs for packing and unpacking, therefore results in high latency and low bandwidth. This paper proposes a new shared-memory-based inter-process message transmission mechanism. The shared memory segment is composed of a super block and several data blocks. The circular queues are deployed for fast scheduling data receiving and delivering. Meanwhile, the atomic operations are applied to improve the overall performance. Experimental results show that the average transmission delay of data packets of size 3MB is 2.5ms, which is drastically lower than LCM's 12ms and is also better than Sharedmem_transport's 3.9ms. The maximum throughput of this method is 1.1GB/s, which is much greater than LCM's 180MB/s and Sharedmem_transport's 600MB/s. |
| Key words: shared memory autonomous vehicle inter-process communication high bandwidth low latency |