What Is CARMA?
Cooperative Automation Research Mobility Applications (CARMA) is an open source software platform initiated by the Federal Highway Administration (FHWA) to enable the testing and evaluation of cooperative automation concepts for improving safety and increasing infrastructure efficiency. CARMA facilitates the research and development of cooperative interactions by infrastructure owner-operators and the automotive industry. By informing vehicles about what’s ahead and what to expect, the CARMA software platform equips vehicles with the ability to interact and cooperate with infrastructure and other vehicles, enabling the safer and more efficient movement of goods and services.
CARMA started in 2014 for the development and implementation of the initial proof of concept CARMA software platform, CARMA1 . In 2018, the latest version of CARMA, CARMA2, migrated to a Robot Operating System (ROS) architecture. CARMA2 was recently completed and is now available on GitHub. The development of CARMA3 kicked off in August 2018 and will be developed in the open using agile software development. More information will be available soon.
|Figure 1. CARMA Evolution|
A proof-of-concept software package developed to enable multiple vehicles to communicate and coordinate their longitudinal movements.
|Figure 2. CARMA Cooperative Vehicles Test|
CARMA1 developed FHWA’s first cooperative automated vehicle fleet to demonstrate a 5-vehicle cooperative adaptive cruise control proof of concept. To learn more about the CARMA1 project, visit Transportation.gov.
A platform that was developed as open source software (OSS) to engage with the industry on cooperative automation.
|Figure 3. CARMA Cooperative Vehicle Test on Highway.|
CARMA2 runs on a Linux computer inside of a vehicle, and the computer interacts with the vehicle’s devices and microcontrollers via the vehicle’s Controller Area Network (CAN bus). The computer also interfaces with the onboard unit (OBU), which functions as a two-way radio for dedicated short-range communications (DSRC) with other vehicles and infrastructure. Additionally, the computer interacts with after-market sensors, such as radars. DSRC has been designed specifically for vehicles in motion, since there is a short time period to establish a connection and quickly exchange messages from vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2I).
The CARMA software platform manages the following interactions:
- Providing the CAN bus messages for the vehicle to speed up or slow down.
- Gathers data from connected sensors to better understand the host vehicle’s environment.
- Sending the OBU messages to transmit to other vehicles so that the other vehicles are aware of the host vehicle.
- Processing incoming messages from other vehicles and infrastructure so that the vehicle can cooperate with them.
Abbreviations used: vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), global positioning satellite (GPS), and human machine interface (HMI)
|Figure 4. Illustration of the CARMA2 Architecture.|
The CARMA2 software platform was created to operate on ROS. CARMA is modular; individual components of CARMA can be replaced and functionality can be customized. The central ROS component is guidance, which provides an Application Programming Interface (API) that allows CARMA users to install any number of plug-ins beyond those preconfigured in the CARMA software platform package. Plug-ins are a way to add custom path planning and cooperative logic to the system. The guidance component is also responsible for determining which plug-in to use and for managing plug-in interactions. In addition, the CARMA software platform has adaptive cruise control (ACC) built in as a low-level guidance function.
Currently, the CARMA2 software platform has plug-ins that support the following cooperative driving tactics:
- Cruising—Recognize and follow speed limit.
- Yield—Slow down vehicle to avoid a collision.
- Lane change and merge—Coordinate with vehicle in a lane to the left or right to make space to merge and change lanes.
- Platooning—Enable collaboration between vehicles at close range in a single lane to save fuel and reduce roadway usage.
- Speed harmonization—Follow dynamic speed commands from a cloud server that is measuring traffic and determining upstream speeds to minimize traffic jams and limit back-end congestion.
As the CARMA2 software platform currently operates, all plug-ins need to be written in Java (installed as a jar file). These plug-ins work strictly on CARMA2. To learn more about opportunities to collaborate with FHWA, please visit our Collaboration page.
A platform developed in the open using an agile software development process to collaborate with the stakeholder community.
Abbreviations used: Cooperative Automated Driving System (CADS), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), global positioning satellite (GPS), light detection and ranging (LiDAR), human machine interface (HMI).
|Figure 5. Illustration of CARMA3 Architecture.|