Software

WISE Automated Driving System (ADS) is a self-driving car software stack developed by WISE Lab. WISE ADS is a derivative of Autonomoose. It consists of the following components in these three functional areas:

Sensor drivers

Perception

  • Calibrations (publishes intrinsic camera calibrations and extrinsic sensor calibrations as static transforms)
  • Localizer (given GPS+IMU, wheel speeds publishes an optimal estimate of ego position and dynamic transforms @ 100 Hz)
  • Occupancy (lidar-based, publishes an occupancy grid @ 20 Hz and a ground grid @ 20 Hz. Additionally, publishes the ground and obstacle point cloud segments and ground normal vector @ 20 Hz) 
  • OpenPCDet-based 3D Object Detector (lidar-based, uses third-party PCDet PointPillars model, publishes 3D bounding boxes @ 20 Hz)
  • KF Tracker (tracks 3D bounding boxes, publishes object tracks and predictions @ 20 Hz)
  • Lane detector and projector (camera-based, uses third-party CondLaneNet, publishes camera images with overlaid detected lanes (2D) and detected lanes projected to vehicle ground plane (3D) @ 10 Hz)

Object detection and tracking

A longer video showing perception and tracking from 3D perspective:

A video showing lane detection and projection into vehicle ground plane in 3D:

A video showing lidar point cloud segmentation done in Occupancy and the resulting occupancy and ground grids.

Planning

  • HD Map Server (loads Lanelet1 and Lanelet2 maps, publishes HD map message (once) and route through the map @ 1 Hz)
  • Behavior Planner + Rule Engine (given the location on the map, route, object tracks, rules of the road, publishes a maneuover to be executed and the global path with speed limits and lane boundaries @ 10 Hz)
  • Local Planner (plans an optimal route given a global path with speed limits and lane boundaries + the occupancy grid, publishes local path @ 10 Hz)

Control

  • Vehicle Controller (given the local path, publishes throttle, steering, break, and gear commands to follow the path @ 50 Hz)

Actuators

Operating System and Middleware

Wise ADS runs on Ubuntu 20.04 Focal and Robot Operating System (ROS) 1 Noetic.

Programming languages

Most components are implemented in C++ 17 and Python 3 with the exception of the Rule Engine, which is implemented as a NodeJS REST service.

UW Moose

UW MooseWISE ADS is deployed on UW Moose, which is the University of Waterloo's self-driving test platform.

  • 2015 Lincoln MKZ with "technology package"
  • Dataspeed Drive-by-wire Interface, reports @ 100 Hz, commands @ 50 Hz.
  • Velodyne VLS-128 AlphaPrime lidar @ 20 Hz (gPTP synchronized)
    Velodyne VLP-32C lidar @ 20 Hz (PPS synchronized)
  • 8x Ximea HD cameras @ 10 Hz (hardware triggered)
  • Novatel Span ProPak6D GNSS receiver with NTRIP base station (~2 cm accuracy) @ 20 Hz and IMU @ 100 Hz

Refer to the "Canadian Adverse Driving Conditions Dataset" paper for a recent detailed description.

Simulation

WISE ADS can be used as the ADS with WISE Sim simulator.

Contributors

Autonomoose, 2016-2019

Original Autonomoose team, mainly members of WAVE Lab led by prof. Waslander and WISE Lab led by prof. Krzysztof Czarnecki.

See also completed project page Autonomoose.

WISE Lab, 2019-present

Project Lead: prof. Krzysztof Czarnecki

Software and Hardware Maintainer: Dr. Michał Antkiewicz

  • Project management, release management, implementation, testing.
  • Dataspeed firmware upgrades.
  • NTRIP base station setup at AVRIL and on-board GNSS receiver reconfiguration.
  • Code migration from Ubuntu 16.04/ROS Kinetic to Ubuntu 18.04/ROS Melodic, and later to 20.04/ROS Noetic. Migration to Python 3.
  • Continuous integration and deployment using GitLab.
  • Lanelet2 mapping and map server support for Lanelet2.
  • WISE ADS mission setup using the same scenarios as in WISE Sim.
  • Behavior Planner Lanelet2 support.
  • System parameter tuning for optimal ADS operation and in response to functionality changes.
  • Occupancy grid node restructuring into three nodelets to improve performance: obstacle/ground pointcloud segmentation, occupancy grid using obstacle pointcloud segment, ground grid using ground pointcloud segment.
  • Improved lead-vehicle following in local planner.
  • Velodyne VLS-128 AlphaPrime lidar integration with gPTP time synchronization.

OpenPCDet-based object detector and tracker extensions: Adrian Chow, May-Dec 2021.

Lanelet2 maps, mapping tools, and map server extensions: Cameron Hinton, Jan-Apr, 2022.

Lane detector and projector, ground grid occupancy extension, Lanelet2 mapping tools: Joseph Younger, Jan-Apr, 2022.

Velodyne VLS-128 AlphaPrime lidar mounting plate fabrication, Chris Tseng, Jan-Feb 2023.

Last updated: March 07, 2023

WISE Lab logo

Projects by status

Opportunities

We are looking for postdocs and graduate students interested in working on all aspects of autonomous driving.

For more information, visit Open positions.