Mike Horton, chief technical officer (CTO) of Aceinna, discusses the advantages of adopting a Controller Area Network (CAN) for IMU-based navigation and control in autonomous or driver-assist applications.
Controller Area Network (CAN) is a robust and mature vehicle bus standard that allows devices to communicate with each other. Now more than 30 years old, CAN is used on virtually all passenger vehicles, as well as heavy equipment.
A low-cost physical layer, combined with a robust and reliable transport layer, delivers messages across the bus. As autonomous vehicles require many sensors to reliably exchange data, CAN is an excellent interface choice for a variety of low- and medium-speed vehicle sensors such as the wheel speed sensor, steering angle sensor, throttle position sensor, and the inertial measurement unit (IMU).
IMUs consist of three axes of acceleration plus three axes of angular rate measurements that are the linear and rotational components of a vehicle respectively. Not to be confused with single-chip accel/gyro integrated circuit solutions, a temperature compensated and calibrated IMU module will deliver nearly zero bias drift over temperature and operating conditions. An IMU may also include three axis of magnetic field measurement used for electronic compass functionality.
While the CANbus standard is pretty mature, only recently has CAN been frequently used to share IMU data with various subsystems on the vehicle. One example of a CAN-enabled IMU is Aceinna’s OpenIMU300RI.
The OpenIMU300RI is a nine-axis microelectromechanical system (MEMS)-based IMU that includes a CAN-interface, a RS-232 interface, and an ARM Coretex M4 CPU. The OpenIMU CPU can run both standard and custom algorithms created using Aceinna’s free, open-source developer toolchain.
So why create a custom IMU app with CANbus?
In an autonomous vehicle, CAN is used to pass IMU data to other sensors as well as the main vehicle control – the vehicle’s brain. Some of our customers report using CANbus to share IMU data with up to 20 other vehicle subsystems in parallel. This can include for example, lidar, camera, and radar, as well as primary compute engines all benefitting from one centrally mounted high-performance IMU on the vehicle.
A CANbus-based OpenIMU300RI application can also listen to other messages on the bus, making it a powerful feature. For example, the dynamic tilt algorithm supplied by Aceinna with the VG_AHRS application could be performance-enhanced by listening to messages such as odometer or vehicle speed to better compensate for the influence of linear acceleration on dynamic roll and pitch. Also keep in mind the OpenIMU300RI has an RS-232 port that can be used to input or output additional data. For example, in Aceinna’s INS navigation application, GPS sensor data inputted via the OpenIMU300RI RS-232 channel is then fused with the OpenIMU300RI’s internal IMU for full GPS/INS sensor fusion.
Due to the popularity of the CANbus on vehicles, a CAN interface is a convenient and reliable way to pass IMU data to one or more subsystems on the vehicle. The OpenIMU300RI supports both CAN 2.0A and CAN 2.0B messaging.
The CAN specification has two standards for messages: CAN 2.0A with an 11-bit message identifier; and an alternative standard CAN 2.0B with a 29-bit message identifier.
In Aceinna’s experience, both message types are pretty common in the field. Consumer automobiles often use custom-defined messages with 11-bit identifiers, whereas heavy equipment vehicles more commonly use the 29-bit identifiers and define messages according to the J1939 standard. Recently some applications are starting to use a newer CAN FD (Flexible Data-Rate) protocol that supports data payloads up to 64 bytes.
Due to the popularity of the CANbus on vehicles, a CAN interface is a convenient and reliable way to pass IMU data to one or more subsystems on the vehicle.
J1939 based IMU and dynamic tilt sensor
J1939 is a SAE standard for encoding vehicle sensor and diagnostic data using CAN 2.0B (29-bit Identifier) messages. J1939 makes sharing data much easier because the contents and scaling of the message’s data contents are globally standardized. J1939 also includes room for a device to have custom messages too. Aceinna’s official IMU application for OpenIMU300RI provides IMU output according to J1939.
Aceinna also supports a dynamic tilt algorithm for the OpenIMU300RI. It refers to this algorithm as a ‘Vertical Gyro’ and it is installed by compiling the VG_AHRS OpenIMU application for the OpenIMU300RI platform. Instructions are available on Aceinna’s OpenIMU. This algorithm computes the dynamic inclination i.e., roll and pitch by integrating the angular rate sensors to angle and then using the acceleration channels to establish a stable absolute reference with respect to gravity as well as correct for the long-term drift of the integration process.
In summary, CAN is a popular standard bus that is extensively used in the vehicle industry and it is an excellent choice for IMU-based navigation and control in autonomous or driver-assist applications. The OpenIMU300RI’s open-source code and tool chain makes this integration process both straightforward and flexible.
Mike Horton is the chief technical officer (CTO) of Aceinna, where he is responsible for corporate technology strategy and inertial-navigation related technology development. Prior to Aceinna, Horton founded Crossbow Technology, a leader in MEMS-based inertial navigation systems and wireless sensor networks. In addition to his role at Aceinna, Mike is active as an angel investor with two Silicon Valley based angel groups: Band of Angels and Sand Hill Angels.