ICEORYX:
博世在量产ADAS领域装配率长期占据市场前三的份额,他们对于如何将自动驾驶数据高效流转的需求更为迫切,为此在大神Michael Pöhnl带领下,专门为自动驾驶开发了一套中文名叫“冰羚”,英文名ICEORYX的中间件。
如上面所说,大量自动驾驶相关的感知数据需要在整个系统内完成快速的流转,这里就不得不提一下进程间通信(Inter ProcessCommunication)这个概念。拿大家最常用的Linux系统举例,不同进程之间传播或交换信息,由于不同进程地址空间相互独立,传递数据时不停的来回拷贝数据,建立和释放堆栈,这个不生成任何价值的拷贝的过程浪费和占有了大量系统资源并产生了不期望的延迟。
图4 进程间通信
ICEORYX为了解决上面的问题,设计了一种“零拷贝”的内存共享技术来优化之前ADAS量产项目中遇到的困扰。
这种“零拷贝”通过事前定义好的通用接口,将需要消费的数据(图片原始RGB或者激光点云数据)放入由ICEORYX申请好的内存空间,然后