
最近为了采集P7的can数据,研究了一下can fd的采集方式。传统的自动驾驶数据采集会将所有传感器的数据都接入ROS中进行时间同步和统一的录制管理,canbus一般的处理方式是使用pcan设备从OBD或者其他位置的总线接口引入工控机,通过socketcan作为底层驱动(linux kernel自带),然后使用ros的canopen工具包中的socketcan_bridge包将can数据变成ros中的一个topic发布出去,这样就可以方便的进行订阅了。
ros采集普通can相关的资料比较多,can_fd还算比较新的一种can格式,网上资源不是很多。
首先要解决的是pcan设备的问题,支持fd的版本一般要贵一些,国产can设备比如周立功对linux下fd的支持度有限,所以直接上了pcan的mini PCI-E接口的4路canbus采集卡,通过工控机上的m2接口就可以直接对接can总线出来的db9接口。socketcan是支持fd的,但是要买到可以在linux下正常使用socketcan驱动的canfd设备,国内市场还是不好买。
其次是socketcan的配置问题。其实用udev规则直接配置就可以了,开机自启动非常的方便。对于canfd来说,配置可以是这样的。
SUBSYSTEM=="net", ACTION=="add", K