Achieve Highway Automation
with Dataspeed
The Dataspeed Highway Driving Software Stack provides automated highway driving R&D functionality including Lane Keeping, Adaptive Cruise Control (ACC), and Automated Lane Change. This package is utilized with a suite of sensors to allow engineering teams to build upon their autonomous research and testing.
Learn More
System Requirements
The system supports any number of lidar and radar sensors, as long as the host computer is able to process all of the incoming sensor data.
- Lidar: Any lidar that has a ROS driver for versions Melodic or Noetic can be used as long as the driver publishes sensor_msgs/PointCloud2 messages with raw point cloud data.
- Radar: Continental ARS408 LRR is the only supported radar, however different radars can be incorporated as long as a ROS driver is available and a data sample from representative driving environments are provided.
- By-Wire System: The Dataspeed By-Wire Kit is the industry preferred by-wire solution to use, but other drive-by-wire systems can be used.
- Computer & Operating System: Any x86-based computer with 6 or more cores is recommended. Ubuntu 18.04 or 20.02 LTS version is required.
- MobilEye Camera: The MobilEye camera is used to detect the shape of the lane markings.
How Does the Software Stack Work?
1. Sensor driver modules collect raw data from radar, lidar, and MobilEye sensors.
2. Perception modules process the raw sensor data and produce:
- A combined list of detected objects around the vehicle.
- The center lines of the vehicle's current lane and the two neighboring lanes, if they exist.
3. Planning modules take the perception output and decide:
- Which object, if any, should be used to activate ACC.
- Whether it is safe to change lanes and either execute or hold lane change maneuvers triggered by the safety driver.
- Whether to issue a hold-speed command or an ACC following distance regulation command to the speed/acceleration control module.
4. Control modules take inputs from the planning modules consisting of an ACC target object, lane center target, and speed and steering commands in order to generate drive-by-wire actuator commands.
Interface Parameters
Users are able to manipulate the software stack to fit specific research and development needs including:
- ACC following distance
- Lane change speed
- Amount of delay between issuing turn signal and executing a lane change maneuver
- Region-of-interest of each lidar detection zone
- Whether to allow lane keeping to function with just one good line detected or require both lines to be detected
Lidar Object Tracking & Filtering Module
Point Cloud Segmentation
- Removes ground points based on the angles of local normal vectors
- Segments remaining points into discrete objects and corresponding bounding boxes
Kalman Tracking Filter
- Assigns each object a unique ID for as long as it is in the sensor's field of view
- Infers relative velocity after enough observations
- Position predictions up-sampled to 50 Hz
- Age, position, and relative velocity reported along with a filtered bounding box
Radar Object Filtering Module
- Tracked objects are directly outputted from radar sensors, but they require more filtering to remove noisy and stationary objects before passing into the sensor fusion module.
Raw Radar Objects
Only Moving Objects
Sensor Fusion Module
Sensor fusion combines object tracking data from all lidar and radar sensors into a single object list. It transforms all objects into vehicle frame coordinates for use by the planning and control modules. Combining data from multiple sensors makes the system more robust. Radar detects objects at longer range than lidar, allowing the vehicle to better react to high relative velocity situations in a timely manner. The radar is more reliable in inclement weather while the lidar detects stationary objects that are filtered out from radar object list.
Lane Detection Module
Dataspeed developed the lane detection module to input the individual lane markings as reported by the MobilEye sensor. Using the lane marking geometry, the lane detection module generates a filtered center line for the vehicle’s current lane and the two neighboring lanes.
MobilEye lane detection makes use of reported quality and lane marking type:
- Only generates adjacent lane center if the boundary line is dashed.
- Suspends lane keeping control if poor quality exists on one or both ego lane lines.
- Handles diverging and converging lane markings at entrances and exits. If one line is much straighter than another, more weight is applied to the straighter line when generating the lane center trajectory.
Trajectory Following
- Inputs lane center trajectories from the MobilEye lane detection module.
- Interpolates between trajectory updates using vehicle speed and yaw rate.
- Special handling for lane change maneuvers.
Adaptive Cruise Control Module
Adaptive cruise control (ACC) intuitively regulates a vehicle’s acceleration and braking by following a nominal set speed. The set speed is initialized to the
current vehicle speed when the system is engaged and can be incremented and decremented by the safety driver. Through active monitoring of other
vehicles and objects on the road, adaptive cruise control enables a safe and comfortable driving experience.
When an ACC target object is detected, control output switches to acceleration.
- Uses relative maximum amount of acceleration.
- Minimizes brake application while ensuring vehicle doesn't get too close to other vehicles.
ACC Targeting
Considers the complete list of objects from sensor fusion module and determines whether each object is in the ego lane or not. Current steering wheel angle is used to predict where the ego lane is when in a curve. The closest in-lane object is sent to the ACC module.