Open Source Overview ============================ Connected Vehicle Research Platform (CVRP) Version 1.1 Description ----------- The CVRP (aka CARMA) software provides an API to each of the TFHRC's CARMA vehicles (modified 2013 Cadillac SRX). Researchers can build project-specific control code on top of this API to study, for example, advanced ACC and driver assist systems. The software in this repository comprises four components that execute on two processors. The primary processor is a MicroAutobox II running dSpace, that houses: * CARMA platform Real-time * Project-specific control code (not part of this repository) The secondary processor is a generic Ubuntu Linux PC that houses: * Data communication and extended driver interface * Log processor The primary functions of these components are as follows. CARMA real-time: this code parses input data from the CANbus and secondary processor and places the individual data elements into the data interface block, which can be read by the project-specific application (e.g. the PATH CACC code). It also reads project-specific outputs from the data interface block and packages them into properly formed messages and forwards them to the CANbus or secondary processor, as necessary. Data communication and extended driver interface: is a web application that provides an extended driver interface (beyond the stock vehicle dashboard interface). This DVI is a web page that can be transmitted over wifi to a tablet mounted on the dashboard to provide experimental data feedback and get commands from the driver. It also communicates with the non-CANbus devices on the vehicle: two-way messaging with the DSRC on-board unit to pass BSMs; TORC controller to receive vehicle speed and to pass speed commands; and TORC Pinpoint location device to receive current vehicle position. Data from these devices is then reformatted as necessary and passed to the CARMA real-time component via Ethernet messages. Data from the CARMA real-time component (e.g. speed commands and BSMs) are passed to these devices as appropriate. As it exists in this repository, this component includes project-specific code (DVI presentation and data exchange with the MAB), so some packages will have to be modified for future projects. Log processor: is a Python program running on the vehicle’s secondary processor responsible for formatting logs from the CACC control software on the MAB. The CACC control software sends various control parameters to the Log Processor every timestep via a UDP socket. The Log Processor parses this binary-formatted message into a human-readable CSV format more suited for post-processing and analysis. These files are stored in a subfolder of the Log Processer program’s working directory and are stored in files with timestamped names. Installation instructions ------------------------- Microautobox: this is a complicated build & install process. It is described in the document "CACC Software Installation Instructions.docx" in the MAB/docs directory. Secondary processor: the data communication app runs on Java 1.7, which needs to be installed first. All of its functionality and resources are packaged in a single jar file, which needs to be installed in a directory named /opt/<project name>. It will also need a directory named /opt/<project name>/logs. log processor: this is described in the same doc as the Microautobox installation. License information ------------------- See accompanying LICENSE file. System Requirements ------------------------- Microautobox: dSpace Microautobox II computer Secondary processor: Minimum memory: 2 GB Processing power: Intel Core I3 @ 1.6 GHz or equivalent Connectivity: ethernet Operating systems supported: Ubuntu 14.04 Documentation ------------- The user guide for the research platform is included with the software distribution. Web sites --------- This software is distributed through the USDOT's JPO Open Source Application Development Portal (OSADP) under the CACC-CARMA project. http://itsforge.net/