Home

Awesome

CARLA 0.8.4 Data Collector

Repository for data collection in CARLA version 0.8.4. The data collected follows this format.

This repository contains the following features:

System Overview

Overview

The data collection is divided into a set of episodes performed by an expert agent driver.

The user can configure a dataset configuration file. This file contains a set of start/end positions, weathers and number of dynamic objects to appear on every data collection episode. Further, the user also configure a CARLA settings object containing all the sensors that are going to be stored as a dataset.

This configuration file and the expert demonstrator are used inside a collector module that can be replicated on several docker instances. This instances produce a dataset on with several measurements and sensors stored on a specific format.

Getting Started

Installation

To install the CoIL large scale training framework, we provide a conda environment requirements file. Basically, just do:

conda env create -f requirements.yml

Downloading and starting the CARLA Gear server

To run this data collector you need a special version of the CARLA server version 0.8.4. It is a version where the ego-vehicle has a single gear. This problem is discussed in this issue.

The server can be dowloaded with this link.

It is possible to collect data on a regular CARLA version, however the controller will be less smooth.

Adding a single collection process

To run a single data collection process. First start a CARLA Gear Server. In a separate terminal, run:

sh CarlaUE4.sh /Game/Maps/Town01 -windowed -world-port=2000  -benchmark -fps=10

In a second terminal, start the data collector:

python3 collect.py

The collected dataset will be stored in the current folder. More configuration and visualization details can be seen here.

Massive data collection

To run a multi gpu data collection you need to have a docker image of CARLA Gear server. For that you need to install docker and build an image of CARLA Gear:

docker image build -f <carla_folder>/Util/Docker/Release.Dockerfile -t carlagear <path-to-carlagear/>CarlaGear

Where the CARLA folder is a checkout of the main CARLA repository.

The following command will open three CARLAs to collect 10 episodes each and store them at ~/Datasets/AmazingData path.

python3 multi_gpu_collection.py -n 3 -e 10 --data-path ~/Datasets/AmazingData

By default it opens three CARLAs per GPU. Note you will see some connection closed errors for a while until the CARLA dockers are ready to receive connections. The collected data will have the following data format