参考:
Canbus: 控制器局域网 (Controller Area Network,简称CAN或者CAN bus) 是一种车用总线标准。
Apollo项目中Canbus模块的主要作用是接收Control模块发布的指令,然后将指令解析为CAN协议报文与车辆的ECU交互,且得到指令的反馈信息(车当前的状态,如:航向,角度,速度等),并将反馈结果发布为车辆底盘信息(Chassis_detail)。
Chassis_detail是什么:apollo_cidi/modules/canbus/proto/chassis_detail.proto 里面存放了一些刹车、转弯、加速等等信息。底盘信息非常重要,一方面控制模块下达的指令需要先在Canbus模块中解析然后通过CAN总线传递给车上的各个控制单元,另一方面Canbus能从CAN总线上获取数据并且将信息解析为底盘信息,然后把消息发布出去,这一过程也叫反馈底盘信息,为的是让控制中心了解下达命令的具体执行情况。
Canbus其实也是属于软件层,跟control节点是同一级的。canbus在收到控制指令后解析成可以进行CAN线通信的数据格式,利用CAN线把指令传到ECU上,在ECU上做具体的刹车、转向等控制。所以你甚至可以直接在Canbus模块写指令直接发送到ECU。
Apollo中Canbus模块下的proto文件夹
可参考该文件夹下的proto文件,整理关于底盘的数据消息。