背景:
本文旨在介绍
- 如何将传感器样件适配整车,打通数据流,调试其至正常工作状态。
- 开发一些验证工具,为不同车型和不同型号传感器的集成工作提效。
初识硬件:
1. 传感器
常见传感器有激光雷达,毫米波雷达,摄像头,超声波雷达,组合惯导等。
2. 通信链路
数据传输物理链路有车载以太网,can/canfd,串口,GMSL同轴电缆等。
3. 计算平台
数据处理平台有x86,orin,tc397等。
传感器集成适配流程:
激光雷达
- 根据激光雷达产品手册,获取其车载以太网口信息,配置其连接的网关口(千兆/百兆,master/slave)。
- 确定lidar当前ip,产品手册查阅lidar的默认ip或在计算平台中通过wireshark查看对应网口的arp包(如 who has 192.168.10.1 ?Tell 192.168.10.200)。
- 配置计算平台端对应网口(netplan配置),使其与lidar ip在同一网段。
- 连通lidar网络,自定义配置lidar的src_ip, dst_ip, dst_port, 时间同步方式(常见配置方式有lidar网页端配置,走uds协议的tcp通信),配置后重启lidar,tcpdump或wireshark抓包检查配置是否生效。
- 根据lidar的时间同步方式(pps+gprmc, gptp, ptp),在计算平台上配置相应的授时服务。
- 如果是pps+gprmc时间同步,就要从定位设备的串口线中引出,接至lidar线束,两边设备串口的波特率配置一致。
- 如果是gptp或ptp时间同步,计算平台要下载编译好linuxptp,配置对应的时间同步cfg文件,启用ptp4l(最好做成开机自启服务如 /lib/systemd/system/timesync_to_lidar.service)对lidar授时。在此之前还要用ethtool -T 网口名,查看网口是否支持软件和硬件时间戳。激光雷达内部的时间同步配置文件有可能也需要用户自定义 (一般注意修改两个参数tx_timestamp_timeout, step_threshold)。
- 解析lidar的udp数据包,确认其工作状态(时间同步状态,故障模式,实时流量,是否丢包,点云可视化),正常之后可进入标定环节。
毫米波雷达
- 确认radar的输入输出物理层链路(车载以太网还是can/canfd)。
- 用实测数据校对协议,确定radar的输出信息(原始点云或目标物输出)。若使用多个同型号的radar,考虑到向radar输入的can报文是一样的,不同安装位置的radar可通过多个pin脚的状态组合确定,在满足各radar的应用层输出的can报文ID互不冲突,uds诊断的寻址ID互不冲突,总线负载率(一般小于60%),总线上can/canfd兼容的要求下,可考虑将多个radar的can线合并,提高MCU侧的can口利用率。
- 根据用户手册,向radar转发协议要求的can报文(一般包含车速,方向盘转角,横摆角速度,档位信息)。如果radar是分输入输出两路can,底盘信息又都在一路can上,can波特率一致,底盘可以直连radar的输入can。若不满足直连,需要考虑MCU做应用层转发。有些radar需要接入autosar定义的can时间同步报文,需要MCU做授时。
- 解析radar输出的can或以太网包。确认其工作状态正常(故障模式,是否丢包,输出可视化),正常之后可进入标定环节。
组合惯导
- 确认组合惯导的输入输出物理层链路(车载以太网还是can/canfd)。
- 接入天线(信号良好的开阔地带)
- 确定设备的时间同步模式(pps+gprmc, gptp, ptp),一般定位设备作为智驾域的主时钟节点。
- 通过串口或车载以太网,给组合惯导配置loglist(如GPGGA, BESTPOS),千寻服务帐号,IP,时间同步模式,杆臂值初值等信息。
- 接入RTK服务需要联网,可以选择接入DTU设备。若直连计算平台,需要开启IP转发和使用iptables设置NAT。
- 根据用户手册协议,向组合惯导转发包含车轮速度信息的can报文。
- 检查组合惯导设备工作状态,读取其天线搜星数,rtk固定解状态,gprmc时间,输出信息是否与loglist一致。正常之后可进入标定环节。