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:
Novatel Span Driver (third-party, ported to Python 3, produces GNSS data @ 20 Hz and IMU data @ 100 Hz)
Velodyne Lidar Driver (third-party, produces point cloud @ 20 Hz)
Dataspeed Drive-by-wire kit (third-party, produces wheel speeds @ 100 Hz, steering, throttle, brake reports @ 50 Hz, and gear report @ 20 Hz)
Ximea Cam Driver (open-source, produces images @ 10 Hz)
- 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)
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.
- 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)
- Vehicle Controller (given the local path, publishes throttle, steering, break, and gear commands to follow the path @ 50 Hz)
- Dataspeed Drive-by-wire kit (third-party, receives steering, throttle, brake commands @ 50 Hz, gear command)
Operating System and Middleware
Wise ADS runs on Ubuntu 20.04 Focal and Robot Operating System (ROS) 1 Noetic.
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.
WISE 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.
WISE ADS can be used as the ADS with WISE Sim simulator.
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.