![e2e61d15df0a4f92b9e190a6f101b793.png](https://i-blog.csdnimg.cn/blog_migrate/46565bfd68fc31314ab7cf08a2161228.png)
![9f8a8499f17d574f440a3035baf7f711.png](https://i-blog.csdnimg.cn/blog_migrate/57d1ef354d3d769d7313764d9bcf5f39.png)
每辆汽车HMI界面的设计风格,呈现数据的多少,高科技的体验感,都是用户在选车时考量的重要因素,汽车HMI界面从技术实现角度需要解决以下三个问题:
(1)可以获取汽车基本信息数据,例如:车速、电量、传感器状态等等;
(2)界面设计的实现;
(3)可以把获取的信息数据显示在界面上,进行人机交互。
众所周知,CANoe是一款广泛应用在汽车领域的工具,可以获得汽车里面所有通信类型的数据(包括以太网、CAN、LIN等),可以解决HMI界面的第一个获取数据的问题;而Unity3D是游戏领域广泛使用的工具,可以进行界面设计,并且Unity3D工程可以用在windows、linux,、IOS、安卓等多种系统中,可以解决HMI界面的第二个界面设计的问题;为了把获取的数据信息和界面结合起来,用C#语言为基础建立工程,引用Unity3DWebPlayer插件及CANoe插件,把获取到的CANoe数据发送到Unity3D界面上进行显示。
所以,有了以上技术理论做基础,小编就做了一次大胆的技术实践,把CANoe与Unity3D混搭在一起,进行汽车自动驾驶界面开发,把CANoe收集到的车速、电量、传感器状态、障碍物信息、camera信息等等都显示在界面上。
![e2e61d15df0a4f92b9e190a6f101b793.png](https://i-blog.csdnimg.cn/blog_migrate/46565bfd68fc31314ab7cf08a2161228.png)
![9f8a8499f17d574f440a3035baf7f711.png](https://i-blog.csdnimg.cn/blog_migrate/57d1ef354d3d769d7313764d9bcf5f39.png)
1.系统架构
▲ 图一:系统架构图
如上图所示,为整个系统架构图,需要以下硬件清单:
整个系统以实车为中心,实车通过连接激光雷达等传感器获得一些道路信息,做完数据分析和数据融合之后,转换为CAN信号或者以太网信号输出;然后CAN信号或者以太网信号连接到CANoe上,通过USB线把CANoe连接到工控机上,进行数据采集;整个界面设计程序通过C#语言进行编写,通过引用CANoe插件得到CANoe数据信息;然后再引用Unity 3D的UnityWebPlayer插件,发送CANoe数据到Unity3D;最终实现界面动态显示。
2.界面显示功能开发
▼界面设计效果图▲ 图二:界面设计效果图
整个界面设计总共分为4个区域:
左上角车辆状态信息:电量/油量、安全带状态安全气囊状态、车门状态各车灯状态、档位状态、当前车速、驾驶模式:人工驾驶/自动驾驶;
右上角行驶环境信息:地图信息、车道限速、本车行进路径高亮显示障碍物信息,区分机动车和行人,红绿灯状态;
左下角:camera前方视角信息;
右下角自动驾驶控车信息:方向盘转角、控车车速、控车跟车时距、智驾状态(unavailable、off、standby、active、exit)、动力系统响应智驾请求状态(红灯有故障,绿灯正常)、转向系统响应智驾请求状态(红灯有故障,绿灯正常)、制动系统响应智驾请求状态(红灯有故障,绿灯正常)、传感器状态、定位模式。
▼信号清单
CAN/CANFD信号
障碍物信息、红绿灯状态、电量、安全气囊状态、主驾驶车门状态/副驾驶车门状态、远光灯/近光灯/左转向灯/右转向灯状态、挡位状态、当前车速、驾驶模式、方向盘转角、加速度、智驾状态、动力系统响应状态、转向系统响应状态、制动系统响应状态、激光雷达系统状态、毫米波雷达系统状态。
ETH信息
高精地图、轨迹预测
▼软件方案说明
整个软件开发的拓扑图如下:
▲ 图三:软件开发拓扑图
软件开发方案说明:
▲ 图四:软件开发方案
用Winform设计整个页面布局
- Camera位于页面左下角,Unity界面设计占据剩下的所有界面
- 在Winform中嵌入CANoe插件、Camera插件、Unity插件
- CANoe插件:编写C#代码,获得CANoe采集到的CAN信号值
- Camera插件:在Winform界面中显示Camera数据
- Unity3D插件:在Winform界面中显示Unity3D游戏引擎界面
▼软件开发说明
通过C#获得CANoe的信号值,例如,下面一段代码可以获得红绿灯的信号值:其他所有的信号都依此类推,通过CANoe采集数据,发送到Unity3D界面显示。
![e2e61d15df0a4f92b9e190a6f101b793.png](https://i-blog.csdnimg.cn/blog_migrate/46565bfd68fc31314ab7cf08a2161228.png)
![9f8a8499f17d574f440a3035baf7f711.png](https://i-blog.csdnimg.cn/blog_migrate/57d1ef354d3d769d7313764d9bcf5f39.png)
小编觉得CANoe混搭Unity3D的技术实践意义不仅仅是为界面设计提供一种实现方法;更重要的是Unity3D技术可以用在多种操作系统,可以把界面工程制作成为app,当用户需要使用时,可以自行进行下载安装,更加方便用户操作,提升车联网的体验感。
下面就点击一下视频看看最终CANoe混搭Unity3D的实现效果吧。
![a0cdd1645aea033b0a9b67471b26b542.gif](https://i-blog.csdnimg.cn/blog_migrate/38c122533f782383f824ecd4e358d2f6.gif)
![e2e61d15df0a4f92b9e190a6f101b793.png](https://i-blog.csdnimg.cn/blog_migrate/46565bfd68fc31314ab7cf08a2161228.png)
![9f8a8499f17d574f440a3035baf7f711.png](https://i-blog.csdnimg.cn/blog_migrate/57d1ef354d3d769d7313764d9bcf5f39.png)
Unity3D界面显示中建立的障碍物模型如下:
更多精彩链接:
浅析SOME/ IP协议,打开车载以太网的大门
CAN XL :CAN协议家族新成员
CAPL仿真能力培养之基于CANoe搭建CAN网关环境
OMG!自动化测试脚本开发竟然如此简单!
车载以太网开发之100BASE-T1 PHY
Upper Tester?知道这些就够了!
![0f2eff919a558985fdebd6515c9d0ae8.png](https://i-blog.csdnimg.cn/blog_migrate/a3201a9ce299a973a52edd6662bdb2a0.png)