General

You are here

CARMA Platform

Figure 1. Photo. Four cars with the CARMA platform enabled demonstrate platooning ability. This image shows three vehicles on the right traveling in platoon formation along a roadway. A fourth car on the right is getting ready to join the three-car platoon.  Yellow circles on the floor under the vehicles show the cars have connectivity functions. The yellow dotted lines above the cars are connected between each vehicle to show the cars are sending messages to each other. The image has three words listed along a dotted line, innovation, collaborate, and open source mobility.

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.  

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 time frame from the CARMA evolution ranging between year 2014 and year 2020. Located above all boxes is an illustration of an automated vehicle. 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 an 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, V2V, and has enhanced lane change, merge, weave, and car and truck platooning. CARMA3 has an emphasis on 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.
Figure 1. CARMA Evolution.

CARMA1

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

Figure 2. CARMA Cooperative Vehicles Test. Five cars equipped with the CARMA platform performing a platoon test. Yellow circles to illustrate that all cars are connected to each other in this platoon.
Source: FHWA
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.

CARMA2

A platform that was developed as OSS to engage with the industry on 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. Visual representation of CARMA2’s architecture. The box on the left of the image represents the CARMA2 platform, which operates on a robot operating system. The yellow text box (top) describes the guidance component. This includes plug-ins (cruise and speed control, platooning, lane change and merge, approach and departure, etc.). Below the guidance text box is the vehicle environment text box (middle). This includes messages (V2V/V2I traffic, sensor fusion, roadway, and route). The device drivers text box is at the bottom left. Device drivers include 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.
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. 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.

CARMA3

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

Figure 5. Illustration of the CARMA3 Architecture. Visual representation of CARMA3’s architecture. The box on the left represents the CARMA3 platform. Labels indicate that CARMA3 operates on a robot operating system, and that its components make up a cooperative automated driving systems (CADS) platform. The yellow text box (top) describes the guidance component. This includes plug-ins (cruise and speed control, platooning, lane change and merge, approach and departure, etc.). Below the guidance text box is the vehicle environment text box (middle). This includes messages (V2V/V2I traffic, sensor fusion, roadway, and route). The device drivers text box is at the bottom left. Device drivers include 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.
Source: FHWA
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.

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

Updated: Tuesday, June 25, 2019