Skip to content
The newest inception of CARMA is now live on Github and open for collaborating. The CARMAPlatform is created on a robot operating system (ROS) and utilizes open source software (OSS) that enables cooperative automated driving plug-ins.
Java C++ CMake C Shell Python Other
Branch: develop
Clone or download
Latest commit 1f6ae45 Dec 6, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add support for autoware 1.13 (#418) Nov 19, 2019
.sonarqube Feature/minimal arbitrator (#390) Oct 21, 2019
arbitrator correct typo Dec 2, 2019
autoware_plugin correct typo Dec 2, 2019
bsm_generator Revert "Update ros package version" Oct 17, 2019
carma_transform_server update package version Oct 17, 2019
carmajava
docker Correct referenced branches in checkout.sh Nov 8, 2019
docs Add support for autoware 1.13 (#418) Nov 19, 2019
engineering_tools
gnss_ndt_selector Revert "Update ros package version" Oct 17, 2019
gnss_to_map_convertor update package version Oct 17, 2019
guidance Add re-engage capability to guidance state machine (#409) Nov 7, 2019
guidance_command_repeater Revert "Update ros package version" Oct 17, 2019
health_monitor integration fix Dec 2, 2019
j2735_convertor Revert "Update ros package version" Oct 17, 2019
lib_asn1c Revert "Update ros package version" Oct 17, 2019
plan_delegator add timestamp Dec 4, 2019
pure_pursuit_wrapper Add support for autoware 1.13 (#418) Nov 19, 2019
route_generator Revert "Update ros package version" Oct 17, 2019
routes update file name and param Aug 12, 2019
trajectory_executor update package version Oct 17, 2019
.dockerignore Build image with new symlinks for post image config Nov 27, 2018
.gitignore Ignore sensitive data files and directories Oct 26, 2018
ATTRIBUTION.md Updated attribution. Added readme link to the new CARMACloud repo. Oct 18, 2019
Code_of_Conduct.md
Contributing.md Comprehensive update for CARMA3 consistency. Jul 28, 2019
Detail_Design.md Personal review fixes. Jul 28, 2019
Dockerfile
README.md
carma-platform.repos added gramin driver to repos file (#415) Nov 13, 2019
carma_build

README.md

CicleCI Build Status Sonar Code Quality
CircleCI Quality Gate Status

CARMA

CARMA Arch

CARMASM advances research and development to accelerate market readiness and deployment of cooperative driving automation, while advancing automated driving technology safety, security, data, and artificial intelligence. It encourages collaboration and participation by a community of engineers and researchers to advance understanding of cooperative driving automation using open source software (OSS) and agile project management practices.

CARMA is a reusable, extensible platform for controlling SAE level 2 connected, automated vehicles (AVs). It provides a rich, generic API for third party plugins that implement vehicle guidance algorithms that plan vehicle trajectories. It is written in Java and C++ and runs in a Robot Operating System (ROS) environment. The platform can be reused on a variety of properly equipped vehicles.

This readme updated: 26 July 2019

What Is CARMA

CARMA Arch

Managing automated vehicle motion involves three aspects. The first is navigation, also known as localization, which is the act of determining where the vehicle currently is with respect to the earth and with respect to the desired path of travel (its planned route). The second is guidance, also known as trajectory planning, which includes the processes of determining how the vehicle is to move from its current location to its destination. The destination and route will be handed to the guidance algorithms, and they then determine how the vehicle’s motion needs to be adjusted at any time in order to follow the route. The third aspect of automated vehicle motion is control, which covers the actuation of the vehicle’s physical devices to induce changes in motion (for land vehicles these are typically causing the wheels to rotate faster or slower and turning the steering wheel). Therefore, the navigation solution becomes an input to the guidance function, and the guidance solution becomes an input to the control function. As the vehicle moves, obviously its location changes so that the navigation function constantly needs to update its solution and the cycle iterates as quickly as necessary to produce a smooth and accurate vehicle motion. The rate of iteration is largely determined by the expected speed of the vehicle.

CARMA provides the navigation and guidance functions for its host vehicle, as well as some of the control functions. It depends on low level controller hardware to provide the rest of the control function. The current version of CARMA provides SAE level 2 autonomy, with both speed and steering control.

Documentation

CARMA Demo

Release Notes

The current version and release history of the CARMA software platform: CARMA Release Notes

Repo Structure Note: The master and develop branches of this repo (and all other repos in the usdot-fhwa-stol GitHub organization) now reflects the third generation of CARMA code and documentation, called CARMA3. It uses Autoware to provide SAE level 2 and 3 automation capability. The legacy CARMA2 code is still being supported. It was used extensively by FHWA during 2018 for SAE level 1 experiments. To work with that code base, please check out the CARMA2-integration branch and make pull requests to it (using the contribution process outlined below).

Roadmap

The current CARMA development direction and release plans. CARMA Roadmap

Architecture Guide

The documentation describes the software architecture within a single CARMA vehicle. There may be several of these vehicles operating in concert, communicating with each other via DSRC or cellular means. They can also communicate with roadside infrastructure using DSRC or cellular. The communication among software components within a single vehicle, however, is mostly done via the Robot Operating System (ROS) framework. There are no ROS communications between neighboring vehicles. CARMA3 System Architecture

For information on the CARMA2 architecture, please see CARMA2 System Architecture

Detailed Design Documents

Please see the Detail Design document page for detailed design specification for CARMA and other additional information. Detail Design Page

Developers Guide

A plug-in developers guide for CARMA3 will be coming soon.

For a description of the approach to develop a plug-in for CARMA2, please see CARMA 2.7 Developers Guide

Users Guide

A user guide for CARMA3 will be coming soon.

For a description of the functionality specific to CARMA2 on the Cadillac SRX, see CARMA User Guide

Administrator Guide

An administrator guide for CARMA3 will be coming soon.

For administrative information on CARMA2, including vehicle and developer PC configuration, build, deployment and testing steps necessary to install and run the CARMA platform, please see Administrator Guide

Other CARMA Packages

CARMA PlatformSM is a downloadable, open source software (OSS) platform architected to be extensible and reusable for a wide variety of research purposes to advance innovation for cooperative driving automation. It enables communication between vehicles, road users such as pedestrians, bicyclists, and scooters, and infrastructure devices capable of communication. It promotes collaboration between a community of engineers and researchers to accelerate the development, testing, and evaluation of cooperative driving automation while advancing the safety, security, data, and use of artificial intelligence in automated driving technology.

The CARMA Platform is distributed as a set of multiple independent packages hosted in separate Github repositories. These packages facilitate operation of the CARMA platform with different hardware configurations or allow it to support different modes of operation. To include one of these packages in your build of the CARMAPlatform system please clone the Github repository into the same Catkin workspace src/ folder as this repository. The Catkin build system will verify that dependencies are resolved appropriately and build the newly included package when you next run catkin_make. An incomplete listing of available packages for CARMA2 includes:

Vehicle Controller Interface Drivers

Sensor Drivers

General System Utilites

A full list of available packages may be found at in the USDOT FHWA STOL Github organization.

CARMA CloudSM is a downloadable, cloud-based open source software (OSS) service that provides information to support and enable cooperative driving automation. It enables communication with cloud services and vehicles, road users such as pedestrians, bicyclists, and scooters, and infrastructure devices capable of communication. It promotes collaboration between a community of engineers and researchers to accelerate the development, testing, and evaluation of cooperative driving automation while advancing the safety, security, data, and use of artificial intelligence in automated driving technology. The source code for CARMA Cloud can be found here on GitHub.

Contribution

Welcome to the CARMA contributing guide. Please read this guide to learn about our development process, how to propose pull requests and improvements, and how to build and test your changes to this project. CARMA Contributing Guide

Code of Conduct

Please read our CARMA Code of Conduct which outlines our expectations for participants within the CARMA community, as well as steps to reporting unacceptable behavior. We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. Anyone who violates this code of conduct may be banned from the community.

Attribution

The development team would like to acknowledge the people who have made direct contributions to the design and code in this repository. CARMA Attribution

License

By contributing to the Federal Highway Administration (FHWA) Connected Automated Research Mobility Applications (CARMA), you agree that your contributions will be licensed under its Apache License 2.0 license. CARMA License

Code.gov Registration Info

Agency: DOT

Short Description: Cooperative Automation Research Mobility Applications (CARMA) is an open source software (OSS) platform that runs on a computer inside of a vehicle, and the computer interacts with the vehicle's devices to enable cooperative automated vehicle research, development, and testing. The computer then gives the vehicle the information needed in order to interact and cooperate with infrastructure and other vehicles.Phase I of this project initiated the next generation of the CARMA fleet by developing a common platform infrastructure that will support the FHWA's strategic vision for Cooperative Automated Driving Systems (CADS). Phase I also developed the Integrated Highway Prototype (IHP) by integrating the existing applications and a new vehicle type, the heavy truck, into the CARMA fleet. The following five applications are major research areas: (1) Vehicle Platooning, (2) Signalized Intersection Approach and Departure, (3) Infrastructure guided Speed Harmonization, and (4) Cooperative Lane Change, and (5) Cooperative Ramp Merge.Phase II of this project will advance CADS, which was developed on the FHWA's CARMA research platform to allow testing of arbitration and negotiation strategies. Ultimately, this project will enhance infrastructure efficiency and reduce traffic congestion. One of the goals of this project is to accelerate the technology transfer and deployment of cooperative vehicle applications through open source collaboration with industry and stakeholders. This project will enable Society of Engineers (SAE) Level 2 and Level 3 (L2/3) light vehicle testing capabilities and develop a fleet of four SAE L2/3 heavy vehicles. The project will also develop a high-level concept for Transportation System Management and Operations (TSMO) around the use of automated driving technology. Furthermore, this project will identify Traffic Incident Management (TIM) scenarios that provide strategy improvements and new strategies for first responder use cases interacting with ADS and using ADS. The new FHWA fleet will be used to prototype a scenario for each of the following use case categories: (1) Basic Travel, (2) Work Zone, (3) Traffic Incident Management and (4) Weather. These tests will provide objective data to inform stakeholders about the impacts of ADS and possible strategies to use ADS to improve operations.

Status: Beta

Tags: transportation, cooperative driving automation, connected vehicles, intelligent transportation systems, C++, java, python, docker

Labor hours: 200

Contact Name: James Lieu

Contact Phone: (202) 366-3000

Contact

Please click on the CARMA logo below to visit the Federal Highway Adminstration(FHWA) CARMA website. For more information, contact CARMA@dot.gov. CARMA Image

You can’t perform that action at this time.