Skip to content

usdot-fhwa-stol/cdasim-config

Repository files navigation

DockerHub Release DockerHub Release Candidate DockerHub Develop
Docker Cloud Build Status Docker Cloud Build Status Docker Cloud Build Status

CDASimConfig

The CDASimConfig repository stores the deployment-specific and XIL scenario specific configuration files (such as Docker Compose manifests, network configuration files, system parameters) for use with the different deployment environments (i.e. local development, XIL CARMA Cloud, telematics, etc.) that CARMA Platform and CDASim supports. A detailed breakdown of how CARMA Platform treats vehicle and XIL configuration can be found on the Confluence page: https://usdot-carma.atlassian.net/wiki/spaces/CRMPLT/pages/886276097/Parameter+and+Launch+Design+for+Different+Vehicle+Configurations

XIL Configuration Folders

Folders containing the name of a specific XIL scenarios (such as 'xil_carma_cloud') contain simulation configuration data that is specific to that scenario and co-simulation suite (for example, the scenario-runner, infrastructure, or sensor suite). These folders also contain the Docker Compose files that will launch CARMA Platform with the appropriate configuration in the simulation. These folders do not contain calibration information that is specific to an individual simulation vehicle.

Vehicle Calibration Folder

Some parameters are unique to individual vehicles such as precise co-simulation orientations or controller tunings. These values are stored separately from parameters that apply to classes of vehicles. A special folder structure is used for this purpose, an example of this structure can be seen in the example_calibration_folder directory. Calibration folders should be installed on the vehicle such that their vehicle folders can be found at /opt/carma/vehicle. It is recommended that this be done as a sym-link to a git repository so your vehicle calibration data can be version controlled.

Example Opt Folder

The CARMA Platform requires that some files be located in the /opt/carma directory so they can be found at runtime. The example_opt_carma folder in this repository contains an example of this folder's structure though some files cannot be included in this repo due to size or license restrictions. Therefore, the installation instructions should be consulted for proper setup. The folder is presented here as a supporting reference and used by development setup scripts.

Current Status of Hybrid ROS 1/ROS 2 System

The current CARMA Platform system operates as a hybrid of ROS 1 Noetic and ROS 2 Humble components. While all core CARMA Platform components related to connected and automated vehicle capabilities (communications, localization, routing, trajectory generation, etc.) and all real-world physical co-simulation drivers are built for ROS 2 Humble, a small amount of ROS 1 Noetic content still exists within the system. To enable bi-directional communication between ROS 1 Noetic and ROS 2 Humble portions of the software system, the ros1_bridge package is used. The ROS 1 Noetic content that still exists within the CARMA Platform system is described below.

With regards to the primary carma-platform repository, the following ROS 1 Noetic content still exists:

  • The carma_record package, which enables ROS 1 rosbags to be recorded. This package is being preserved to enable legacy data analysis scripts to be used for system evaluation until CARLA version used is fully upgraded to ROS2. Note that ROS 2 rosbag recording is also supported by the CARMA Platform system.

Finally, the carma-carla-integration and carma-ns3-adapter repositories contain packages that are required for simulation deployments. These packages are all built for ROS 1 Noetic due to a dependency on on CARLA 0.9.10, which only exposes a networking bridge for ROS 1. In the future, when simulation-related repositories are upgraded to support a newer version of CARLA, these packages will be upgraded to ROS 2.

The table below helps visualize this described breakdown of ROS 1 Noetic and ROS 2 Humble content across the entire CARMA Platform system for different deployment types.

CARMA Platform System ROS Version Overview Table

CARMAPlatform

The primary CARMA Platform repository can be found here and is part of the USDOT FHWA STOL github organization. Documentation on how the CARMA Platform functions, how it will evolve over time, and how you can contribute can be found at the above links as well.

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

Contact

Please click on the CARMA logo below to visit the Federal Highway Adminstration (FHWA) CARMA website. For technical support from the CARMA team, please contact the CARMA help desk at [email protected].

CARMA Image