开源之夏 2025——NEC 在行动
NEC 是我去年的这个时候,打了几个很难打的水赛,从开源开始也逐渐走上正途,感谢 openEuler 社区,给一个小白深度参与中国开源的机会。
在 Github、Gitee、CSDN等平台中,也给了我相当多的帮助,伴随着 ROBOCON(全国大学生机器人大赛)给我代码原型 Demo快速落地的机会。
Good First issue 第一步—— openEuler Embedded
今年运气不错,申到了【OSPP 开源之夏】中 openEuler 社区任老师的项目:实现Automotive Grade Linux在openEuler Embedded上的初步适配
下面是申请过程的一个 tips
做一个Github主页
DarrenPig主页https://github.com/Darrenpig
- openEuler Embedded
- 做一个Github主页
- 开源之夏 申请
也可以做一个个人主页:https://github.com/Darrenpig/darrenpig.github.io
主页belike
开源之夏申请
项目拆解:实现Automotive Grade Linux在openEuler Embedded上的初步适配
(1)项目背景:
智能驾驶以及更进一步的具身智能是当前最火热的应用的前沿,无论智能驾驶也好具身智能也好都需要强大的基础软件平台支撑,当前国内面向智能驾驶的开放基础软件平台目前比较少,我们计划基于openEuler Embedded构建面向软件定义汽车的开放基础软件平台,本项目是该计划中的一部分
(2)已有工作:
经过多年的发展,openEuler Embedded已经是一个相对成熟的开放综合嵌入式软件平台,底层的基础设施、核心组件都已经具备。Automotive Grade Linux (AGL)是Linux基金会旗下面向智能汽车的基础软件项目,详细信息见:https://www.automotivelinux.org/, AGL和openEuler Embedded都构建在yocto生态之上,因此完全可以把AGL融合到openEuler中来
AGL:Automotive Grade Linux (AGL)是由Linux基金会主导的开源项目,专为下一代智能网联汽车打造的基础软件平台。该项目始于2012年,现已发展成为汽车行业重要的开源技术标准。
AGL的核心特点包括:
统一代码库(UES):提供从信息娱乐系统到数字仪表盘的全车统一软件架构
模块化设计:支持汽车制造商灵活定制功能模块
硬件兼容性:适配多种车载处理器平台,如高通、瑞萨、恩智浦等主流芯片
车载信息娱乐系统(IVI)
数字仪表盘
高级驾驶辅助系统(ADAS)
车载通信系统(TBOX)
智能座舱集成
目前已有丰田、马自达、本田等十余家主流车企采用AGL平台。根据2023年统计数据,全球搭载AGL系统的量产车型已超过300万辆。该项目采用Apache 2.0开源协议,开发者社区拥有来自50多家企业的1000+贡献者。AGL的最新版本(2023年发布的13.0代号"Jumping Jellyfish")重点增强了车联网安全性能和OTA更新功能,并优化了对5G网络的支持。
(3)存在的不足:
openEuler Embedded中尚缺少智能驾驶所需要的基础组件,如some/ip等
当前Automotive Grade Linux并未适配到openEuler Embedded之上
(4)希望改进的点:
a. 完善智能驾驶所需的基础组件,例如vsomeip
b. 在a的基础之上,实现AGL在openEuler Embedded上的适配
(5)最终项目实现的目标:
基于openEuler Embedded构建面向智能汽车的基础软件平台
项目难度: 进阶
技术领域标签:嵌入式,操作系统
编程语言标签:python, yocto, C++/C
项目产出要求:在 openeuler embedded上实现如下中间件的集成,支持qemu arm64和一个硬件平台,实现2个节点以上的通信【vsomeip】【dds,例如fastDDS】
vsomeip(Vehicle SOME/IP)
vsomeip 是一种针对车载系统优化的通信中间件,专为汽车电子架构设计,支持 SOME/IP(Scalable service-Oriented MiddlewarE over IP) 协议。其核心功能包括服务发现、远程方法调用(RPC)和事件通知,适用于自动驾驶、智能座舱等场景。
关键特性:
轻量化设计:资源占用低,适合嵌入式ECU(电子控制单元)。
动态服务发现:支持服务实例的实时注册与订阅。
安全通信:可集成TLS/DTLS加密,符合AutoSAR标准。
多语言支持:提供C++ API,兼容Linux/QNX等实时OS。
应用示例:
自动驾驶域控制器通过vsomeip订阅雷达传感器的数据服务。
车载信息娱乐系统调用导航服务的路径规划接口。
DDS(Data Distribution Service)
DDS是一种以数据为中心的通信标准,适用于分布式实时系统,强调低延迟和高可靠性。
例如Fast DDS(eProsima Fast DDS):
Fast DDS是DDS标准的开源实现,广泛应用于机器人、工业物联网和车载网络。
核心优势:
实时性:支持微秒级消息传输,适合硬实时需求。
灵活拓扑:发布/订阅模型允许动态节点加入。
QoS策略:可配置可靠性、截止时间(Deadline)等参数。
典型场景:
自动驾驶中激光雷达与融合算法的数据同步(QoS配置为“Best Effort”)。
车载传感器网络的多节点数据共享(使用“Partitions”隔离不同数据域)。
以下是符合要求的Markdown格式表格:
对比参考:特性对比表
特性 | vsomeip | Fast DDS |
---|---|---|
协议标准 | SOME/IP (AutoSAR) | DDS (OMG) |
适用领域 | 车载服务通信 | 实时数据分发 |
通信模型 | 服务导向(RPC/事件) | 数据导向(Pub/Sub) |
完成前述工作后,实现AGL基础功能在openEuler Embedded上的适配,能运行一个仪表盘应用
全部工作大概产生10+个pr,20+commit
项目技术要求:
熟悉嵌入式Linxu开发流程,有Yocto/openEuler Embedded开发经验
熟悉c/c++开发, 有嵌入式图形开发经验
项目成果提交仓库:
https://gitee.com/openeuler/yocto-meta-openeuler
预估工时
4-5人/月
项目备注
https://www.automotivelinux.org/
https://gitlab.com/automotivegradelinux
https://github.com/COVESA/vsomeip
-
Thanks
- https://gitee.com/vonhust
- https://gitee.com/openeuler/mcs
- https://pages.openeuler.openatom.cn/embedded/docs/build/html/master/features/mica/intro.html#os
https://pages.openeuler.openatom.cn/embedded/docs/build/html/master/features/mica/build.html
下面是针对要求的项目申请做出的 项目申请书