Yesterday a colleague asked me what the term ‘CAN’ stands for, as in CAN bus, and I was embarrassed to admit I didn’t know. To be clear, I know what CAN is, just not what the acronym stands for.
According to Wikipedia, it stands for Control Area Network.
CAN is the standard protocol for communicating between electronic components of an automobile. It’s the language that the steering wheel uses to communicate to the wheel actuators in a drive-by-wire system, for example.
Think of it as the TCP/IP of the automotive world.
The CAN bus, which is the network carrying the CAN signals, turns out to be especially important in autonomous vehicles, as these vehicles are almost always drive-by-wire systems.
A traditional vehicle steering system, for example, involves a mechanical rack and pinion and no electronic signals. A drive-by-wire system, by contrast, involves sending electronic signals from the steering wheel to the wheel actuators (motors). Those signals travel over the CAN bus.
CAN is a bit-level protocol, and operates at a lower level of abstraction than some machine learning engineers are used to dealing with. But it’s a necessity for building a self-driving car.