{ "metadata": { "language": "Julia", "name": "", "signature": "sha256:7faa240ae476eacc7104b1b35c60bdeac9da08c3f7671442b050494788b4606d" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Processing\n", "==========\n", "\n", "This documentation covers the form of the raw input data and how it was processed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Source\n", "\n", "The data processed for this paper was collected by Robert Bosch, LLC, in the San Francisco Bay Area of Northern California and Detroit, Michigan. Approximately two hours worth of post-processed driving data were available for model construction.\n", "\n", "Drives were conducted with a sensor-equipped passenger vehicle allowing precise ego motion estimation as well as detection and tracking of surrounding vehicles through 360 degree LIDAR and radar sensor coverage. This raw collection of driving data was processed by Bosch and into position and motion estimates for the ego vehicle and surrounding traffic participants at approximately 20 Hz.\n", "\n", "### Raw Data Collected From Drives\n", "| Group | Feature | Units | Description |\n", "| ------------- | :-------------: | ----- | ----- |\n", "| GLOBAL | $t$ | s | time stamp (Unix epoch) |\n", "| EGO | $p^G_x$ | m | northing in the global coordinate frame |\n", "| | $p^G_y$ | m | easting in the global coordinate frame |\n", "| | $v^B_x$ | m/s | longitudinal velocity in the body frame |\n", "| | $v^B_y$ | m/s | lateral velocity in the body frame |\n", "| | $\\psi^G$ | rad | vehicle heading in the global frame |\n", "| OTHER | $id$ | - | vehicle identification number, unique across frames |\n", "| | $p^B_x$ | m | longitudinal relative position from the ego vehicle |\n", "| | $p^B_y$ | m | lateral relative position from the ego vehicle |\n", "| | $v^B_{x,oth}$ | m/s | longitudinal relative velocity from the ego vehicle |\n", "| | $v^B_{y,oth}$ | m/s | lateral relative velocity from the ego vehicle |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Processing\n", "\n", "The raw tracks were initially processed to produce a discrete feature set.\n", "An overview of this procedure is given below:\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a first step tracks are *preprocessed*, which includes outlier removal, smoothing, and reinterpolation to a constant sampling rate. Frames in which the ego vehicle was on the freeway were first identified, determined by whether the lane-relative angle was within thirty degrees and the ego vehicle was within 2.5 meters of the lane centerline.\n", "\n", "Outlier removal was conducted using random sample consensus (RANSAC) in one-second sliding windows over the raw position, orientation, and velocity tracks. The resulting data was simultaneously reinterpolated to 20 Hz and additionally smoothed with a Gaussian kernel. Data was then projected to a *lane-relative* Frenet frame. This frame has an x-axis along the lane in the direction of travel and a y-axis perpendicular to the lane, positive towards the driver's left. A second iteration of Gaussian smoothing after lane projection completed the data preprocessing.\n", "Kernel variances of 0.5 $s^2$ and 0.2 $s^2$ were used in the global frame and in the lane-relative frame, respectively.\n", "\n", "Tracks from other vehicles were processed in a similar manner. Vehicles that last less than five frames in the source dataset were discarded, as were vehicles that were deemed offroad. Missing frames were interpolated in the gaussian smoothing step.\n", "\n", "All code for this is available here, in `extract_primary_dataset.jl`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Feature Extraction\n", "\n", "A set of 143 *candidate features* was extracted for the ego-vehicle from lane-relative tracks.\n", "The set includes *core features* from ego dynamics, *roadway features*, *relative features* between vehicles, *past states*, and *aggregate features* over a vehicle's history.\n", "Core features describe the current state of the ego vehicle, including such features as its velocity and turn rate.\n", "Roadway features are measured with respect to the nearest center lane and require knowledge of the surrounding roadway structure.\n", "Relative features between vehicles include time and distance headways and other relative measurements required for interactive traffic prediction.\n", "Features dependent on past actions are included as well, and require recording these values when propagating a vehicle in simulation.\n", "Aggregate features include the standard deviations, minimum, and maximum values for acceleration and turn-rate over various time histories, and require more detailed traces to be recorded." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Discretization\n", "\n", "Continuous features were discretized into a set of bins. The bin boundaries for each variable were chosen manually based on the marginal histogram of each feature. Features were given on the order of five bins, as appropriate.\n", "\n", "Future work will investigate optimal discretization methods, which is an active area of research in the machine learning and statistics community. The discretization scheme used is given in `feature_binmaps.jl`." ] } ], "metadata": {} } ] }