What is the CARMA Platform?
The CARMA PlatformSM is an open source software (OSS) 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. The CARMA Platform 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 Platform equips vehicles with the ability to interact and cooperate with infrastructure and other roadway users, enabling the safer and more efficient movement of goods and services.
The CARMA Platform architecture was designed to be extensible and reusable for a wide variety of research purposes to advance innovation and enable communication between vehicles; road users such as pedestrians, bicyclists, and scooters; and infrastructure devices capable of communication. The platform promotes collaboration between a community of engineers and researchers to accelerate the development, testing, and evaluation of cooperative automated driving while advancing the safety, security, data, and use of artificial intelligence in automated driving technology.
CARMASM started in 2014 for the development and implementation of the initial proof of concept now known as the CARMA Platform, or, 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 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 because 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 Platform manages the following interactions:
- Provides 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.
- Sends the OBU messages to transmit to other vehicles so that the other vehicles are aware of the host vehicle.
- Processes incoming messages from other vehicles and infrastructure so that the vehicle can cooperate with other vehicles.
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 platform was created to operate on an ROS. CARMASM 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 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 Platform has adaptive cruise control (ACC) built in as a low-level guidance function.
The CARMA2 platform currently has plug-ins that support the following cooperative driving tactics:
- Cruising—Recognize and follow speed limit.
- Yielding—Slow down vehicle to avoid a collision.
- Lane changing and merging—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 harmonizing—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 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.|
CARMA3 is currently in development in the open. As a part of CARMA3, the CARMA CloudSM will be available soon.
CARMA Cloud will be a downloadable, cloud-based OSS service that provides information to support and enable cooperative automated driving. It will enable communication between the cloud services and vehicles, road users such as pedestrians, bicyclists, and scooters, and infrastructure devices capable of communication.