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 (produces GNSS data @ 20 Hz and IMU data @ 100 Hz)
Velodyne Lidar Driver (produces point cloud @ 20 Hz)
Dataspeed Drive-by-wire kit (produces wheel speeds @ 100 Hz, steering, throttle, brake reports @ 50 Hz, and gear report @ 20 Hz)
Ximea Cam Driver (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 PointPillars, 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 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 (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
- Dataspeed Drive-by-wire Interface, reports @ 100 Hz, commands @ 50 Hz.
- Velodyne VLP-32C lidar @ 20 Hz (hardware 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
WISE ADS can be used as the ADS with WISE Sim simulator.
See also completed project page Autonomoose.
WISE Lab, 2020-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.
OpenPCDet-based object detector and tracker extensions: Adrian Chow, May-Dec 2021.