You are here

CARMA Platform


Objective of the CARMA Platform

With a multimodal approach, the Federal Highway Administration (FHWA) developed the CARMA PlatformSM alongside the CARMA CloudSM to support the research and development (R&D) of cooperative driving automation (CDA) and enable the safe operation of new transportation system management and operations (TSMO) strategies. The CARMA PlatformSM is an open source-software (OSS) platform initiated by FHWA to enable the testing and evaluation of cooperative automation concepts to improve safety and increase infrastructure efficiency. The platform provides vehicles with the functions needed for automation and facilitates the development of new TSMO strategies while identifying TSMO scenarios that would benefit from CDA.

The CARMA Platform is an automated driving system (ADS) that allows automated vehicles (AVs) to interact and cooperate with infrastructure (such as stop lights) and other vehicles via communication. By providing information about what’s ahead on the roadway in real time (such as work zones, traffic incident, weather, etc.) using CARMA Cloud, the CARMA Platform enables AVs to interact and cooperate with infrastructure and other vehicles, facilitating the safer and more efficient movement of goods and services.

Collaborative Transportation Research

The latest version of CARMA Platform is available on GitHub and open for collaboration. The 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 encourages collaboration between transportation engineers and researchers to accelerate the development, testing, and evaluation of CDA, 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. Next, CARMA2 migrated to a robot operating system (ROS) architecture in 2018 and is also available on GitHub. The development of CARMA3 kicked off in August 2018 and is being developed in the open using agile software development.

Figure 1. CARMA Evolution. Visual representation of the evolution of the CARMA platform—CARMA1, CARMA2, and CARMA3. The illustration is divided into three boxes, each assigned a timeframe in the CARMA evolution ranging between year 2014 and year 2020. Located above all boxes is an illustration of an automated vehicle (AV). All vehicles have two yellow circles surrounding the car, a gray signal on top of the car, and blue waves. These symbols indicate the car is connected to other vehicles or infrastructure.  The leftmost box highlights achievements of CARMA1. From 2014 to 2016, the initial proof of concept of CARMA1 was created and individual applications were collected. At the time, Simulink/dSpace was running on MicroAutobox without the use of ROS. CARMA1 demonstrated several applications: a developed platooning algorithm, modified eco-approach and departure (EAD) algorithm, modified speed-harmonization algorithm, and modified lane-change and merge algorithm.  The middle box represents CARMA2 activities that took place from 2016 to 2018. During this time, CARMA2 vehicles met the standards for the Society of Automotive Engineers (SAE) level 1 automation (speed control) and were level 2 capable. CARMA2 was built on top of a robot operating system (ROS) and is flexible. It can be installed on several types or modes of vehicles and includes vehicle-specific device drivers for hardware connection and vehicle characteristics in a configuration file. The platform also accepts third-party plugins for research applications (guidance algorithms). CARMA2 includes the following simple applications: cruising with adaptive cruise control (ACC), cooperative lane change, mixed platoons, signalized intersections, and speed harmonization.  The rightmost box represents CARMA3 activities that will take place from 2018 to 2020. CARMA3 is now live on Github and qualifies as SAE level 2 automation (speed and steering control) and as level 3 capable. The platform has a more sophisticated vocabulary of cooperation, vehicle-to-vehicle (V2V), and has enhanced lane change, merge, weave, and car and truck platooning. CARMA3 has an emphasis in infrastructure interactions for Transportation Systems Management and Operations (TSMO), including work zones, traffic incident management, weather events, etc. The platform is designed for emergency vehicle applications and interactions as well. The platform continues to evolve on GitHub through 2018, while welcoming additional third-party guidance plugins.
Source: FHWA.
Abbreviations: Open source software (OSS), Society of Automobile Engineers (SAE), Transportation systems management and operations (TSMO), Traffic incident management (TIM).
Figure 1. CARMA Evolution.


A platform developed in the open using an agile software development process to collaborate with the stakeholder community.

The CARMA3 software release is developed in the open using an agile software development process to collaborate with the stakeholder community. The latest version of CARMA is a reusable and extensible vehicle platform that can be used with multiple vehicles.

The CARMA Platform currently includes the following features:

  • Built on Top of ROS: Encourages modular design so that components can be easily swapped out to experiment with different combinations.
  • Motion Planning Plugin Application Programming Interface (API): Allows users to install plugins (e.g. software applications) for either strategic planning or tactical planning of vehicle behaviors and trajectories to exercise particular algorithms and cooperative interaction.
  • Controller Plug-in API: Allows users to install new plugins for low-level motion planning algorithms.
  • Hardware Driver API: Allows the platform to be installed on any properly equipped vehicle as long as drivers are installed that connect to the various vehicle sensors and controller equipment.
  • Vehicle-to-Everything (V2X) Communications Messaging: Has built-in capability to compose/transmit and receive/parse V2X messages in SAE J2735 format, and can work with any radio device.

CARMA3 has four levels of planning:

  • Route planning: Defines the mission.
  • Maneuver planning: Defines behaviors.
  • Trajectory planning: Defines precise path.
  • Command planning: Defines motion.
Figure 2. Illustration of CARMA3 Architecture. The diagram illustrates the CARMA features that will be replaced in CARMA3. From left-to-right the graphic shows sense stack, plan stack, and actuate (act) stack.  The sense stack is composed of plugins including global positioning system (GPS), inertial measurement unit (IMU), lidar, camera, radar, sensor function, localization, perception, world model, onboard units (OBU), and vehicle-to-everything (V2X). The sense stack will be replaced by the plan stack, which is composed of default driving features and cooperative driving automation (CDA) features. The plan stack will be replaced by the act stack in which the vehicle actuator interface is composed of data speed, PACmod, and New Eagle.
Source: FHWA
Abbreviations used: Global positioning system (GPS), inertial measurement unit (IMU), onboard units (OBU), platform actuation and control module (PACMOD), vehicle-to-everything (V2X), light detection and ranging (LiDAR).
Figure 2. Illustration of CARMA3 Architecture.


CARMA Cloud will be released fall 2019 as a downloadable, cloud-based OSS service that provides information to support and enable CDA. It will faciltate communication between cloud services and vehicles; road users such as pedestrians, bicyclists, and scooters; and infrastructure devices capable of communication. CARMA Cloud will allow for simulation capabilities to support CDA research, including setting up a transportation management center (TMC)-like emulation for interacting with CARMA-enabled vehicles.

To learn more about CARMA3 and CARMA Cloud, please visit the GitHub and Confluence sites.

Questions about conducting R&D with CARMA? Email


A platform that was developed as OSS to engage with the industry in developing cooperative automation.

Figure 3. CARMA Cooperative Vehicles Test on Highway. The image shows a live highway with lanes going in three directions. From left to right, the first lane has cars and trucks driving southbound. The middle lane shows three CARMA vehicles testing the platooning application at even distances; they are heading northbound. The farthest right lane shows cars traveling north.
Source: FHWA
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.  
Figure 4. Illustration of the CARMA2 architecture on the left. Visual representation of CARMA2’s architecture on the right. The box on the left of the image represents the CARMA2 platform, which operates on a robot operating system (ROS). The yellow text box (top) describes the guidance component, which includes plugins (cruise and speed control, platooning, lane change and merge, approach and departure, etc.). Below the guidance box is the vehicle environment text box (middle), which includes messages such as vehicle-to-vehicle/vehicle-to-infrastructure (V2V/V2I), traffic, sensor fusion, roadway, and route. The device drivers box is at the bottom and includes controller software, communication, position (GPS), sensor, and CAN. Arrows indicate the flow of data from the guidance component to the vehicle environment to the device drivers, and from all three of these components to the HMI interface, which is to the right.  The graphic to the right of the illustration shows a driver’s view of the HMI device on a dashboard to the right of a steering wheel inside a vehicle. Blue waves above the windshield show the car’s connective abilities. An Android HMI device is shown with two red arrows pointing to user-interface examples (screenshots of what would appear on the Android HMI device). A blue dot, a purple dot, and an orange dot are located below the HMI device with arrows pointing to the HMI device. The blue dot represents guidance and path planning, the purple dot represents vehicle environment, and the orange dot represents the device drivers.
Source: FHWA
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. 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 plugins beyond those preconfigured in the CARMA Platform package. Plugins are a way to add custom path planning and cooperative logic to the system. The guidance component is also responsible for determining which plugin to use and for managing plugin interactions. In addition, the CARMA Platform has adaptive cruise control (ACC) built in as a low-level guidance function.

The CARMA2 platform currently has plugins 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 plugins need to be written in Java (installed as a jar file). These plugins work strictly on CARMA2. To learn more about opportunities to collaborate with FHWA, please visit our Collaboration page.


A proof-of-concept software package developed to enable multiple vehicles to communicate and coordinate their longitudinal movements.

Figure 5. CARMA Cooperative Vehicles Test. Five cars equipped with the CARMA Platform performing a platoon test. Yellow circles illustrate that all cars are connected to each other in this platoon.
Source: FHWA
Figure 5. 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. The goal of the roadway tests was to combine speed harmonization with connected automation technologies such as platooning and cooperative merging on managed lanes. Through this testing, the team assessed system performance of these scenarios by having vehicles drive in parallel and allow a vehicle to merge behind the platoon. The platoon had variable speed limits determined by the roadway operator. The speed harmonization application communicates with infrastructure and roadway sensors, continuously sending speed guidance to the vehicles. To learn more about the CARMA1 project, visit