Awesome-Autonomous-Driving Awesome

Author: 牛肉咖喱饭(PeterJaq)

Update:2022/06/26

This project will be periodically updated with quality projects and papers related to autonomous driving.

Now I am re-orging this project.

Contents

1. Autonomous Driving Midleware and Integrated Solutions

1.1 Midelware

中间件

  • ROS - A set of software libraries and tools that help you build robot applications.
  • ROS-2 - A set of software libraries and tools that help you build robot applications.
  • Cyber - High performance runtime framework designed specifically for autonomous driving (AD) scenarios from baidu.

1.2 Integrated Solutions

解决方案

2. Sensor and Calibration Tools

2.1 Sensor Hardware

传感器硬件

LiDAR

Camera

GPS/IMU

MCU

2.2 Calibration Tools

参数标定工具

  • OpenCalib - ALL in One 商汤开源的自动驾驶多传感器的一个开源标定工具箱,基本涵盖了大部分的自动驾驶标定场景。
  • camera-calibration - 能够比较好的阐述相机标定具体步骤和原理的
  • CameraCalibration - 这个项目集合了相机标定相关的多个脚本工具,便于完成完整的车载环视相机标定流程
  • ros-camera-lidar-calibration - 相机内参标定与相机lidar外参标定
  • lidar_IMU_calib - Lidar IMU 的标定工具
  • sync_gps_lidar_imu_cam - lidar-imu-cam-GPS时间戳硬件同步方案

3. Perception

3.1 Detection

检测与分割

3.1.1 Vision based

基于视觉

Lane Detection

Object Detection

  • YOLOR - 提出了在网络模型中引入隐知识的概念,将隐知识和显知识同时作用于模型训练,通过核函数对齐,预测精修以及多任务同时学习,让网络表征出一种统一化的特征。
  • YOLOX - Anchor-free 版本的YOLO,堆砌了解耦头,simOTA等,达到了SOTA
  • 3D-BoundingBox
  • Pseudo_Lidar_V2 - Accurate Depth for 3D Object Detection in Autonomous Driving.
  • Pseudo_lidar - Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving.

3.1.2 Lidar based

基于激光雷达

Object Detection

  • Voxelnet
  • Complex-YOLO
  • PointRCNN
  • CenterPoint - 3D Object Detection and Tracking using center points in the bird-eye view.
  • PartA2-Net - From Points to Parts: 3D Object Detection from Point Cloud with Part-aware and Part-aggregation Network.
  • CIA-SSD - Confident IoU-Aware Single Stage Object Detector From Point Cloud.
  • 3DIoUMatch-PVRCNN - 3DIoUMatch: Leveraging IoU Prediction for Semi-Supervised 3D Object Detection.
  • SFA3D - Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point Clouds.

3.2 Tracking

追踪算法

3.3 High Performance Inference

高性能推理

视觉系列

  • Lite.ai - 该项目提供了一系列轻量级的目标检测语义分割任务的整合框架支持 YOLOX🔥, YoloR🔥, YoloV5, YoloV4, DeepLabV3, ArcFace, CosFace, RetinaFace, SSD, etc.
  • multi-attention -> onnx -
    提供了一个多头注意力机制支持onnx部署的方式

LiDAR Pillars系列

4. Prediction

  • [An Auto-tuning Framework for Autonomous Vehicles] (https://arxiv.org/pdf/1808.04913.pdf)
  • VectorNet - 来自VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation利用高精地图 -与目标物信息进对目标进行行为预测。apollo在7.0版本的行为预测部分的encoder利用了这个vectornet.
  • TNT - TNT是一种基于历史数据(即多代理和环境之间交互)生成目标的轨迹状态序列方法,并基于似然估计得到紧凑的轨迹预测集。
  • DESIRE - DESIRE: Distant Future Prediction in Dynamic Scenes with Interacting Agents
  • TNT: Target-driveN Trajectory Prediction apollo在7.0版本的行为预测模块inter-TNT的轨迹生成利用了TNT的方法.
  • MultiPath++ - Efficient Information Fusion and Trajectory Aggregation for Behavior Prediction.
  • MotionCNN - A Strong Baseline for Motion Prediction in Autonomous Driving.
  • WAT - Weakly-supervised Action Transition Learning for Stochastic Human Motion Prediction.
  • BEVerse - Unified Perception and Prediction in Birds-Eye-View for Vision-Centric Autonomous Driving.
  • ParkPredict+ - Vehicle simualtion and behavior prediction in parking lots.
  • HiVT - Hierarchical Vector Transformer for Multi-Agent Motion Prediction

5 Localization and SLAM

Localization

  • hdl_localization - Lidar + IMU 基于卡尔曼滤波的位置估计使用了激光雷达,IMU, 可以做到实时估计。

SLAM

  • AVP-SLAM来自2020IROS的AVP定位方案:AVP-SLAM: Semantic Visual Mapping and Localization for Autonomous Vehicles in the Parking Lot(IROS 2020),主要是通过BEV视角对停车场中的车道线车库线以及标识进行检测并利用其进行稀疏定位。 最近有两位大佬提供了仿真和定位的开源方案:AVP-SLAM-SIM AVP-SLAM-PLUS
  • DeepLIO - Lidar + IMU 一款基于深度学习的lidar IMU融合里程计
  • hdl_graph_slam - Lidar + IMU + GPS 它基于三维图形SLAM,具有基于NDT扫描匹配的测距估计和循环检测。它还支持几个约束,如GPS、IMU。
  • LIO-SAM - Lidar + IMU + GPS 基于激光雷达,IMU和GPS多种传感器的因子图优化方案,以及在帧图匹配中使用帧-局部地图取代帧-全局地图。
  • LVI-SAM - Lidar + Camera 基于视觉+激光雷达的惯导融合
  • LeGO-LOAM - Lidar LeGO-LOAM是以LOAM为框架而衍生出来的新的框架。其与LOAM相比,更改了特征点的提取形式,添加了后端优化,因此,构建出来的地图就更加的完善。
  • SC-LeGO-LOAM - Lidar LeGO-LOAM的基于全局描述子Scan Context的回环检测
  • SC-LIO-SAM - Lidar + Camera LIO-SAM的基于全局描述子Scan Context的回环检测
  • Livox-Mapping - **Livox + IMU + SC ** 一款基于Livox的mapping工具包,在先前的工具上添加了SC和Fastlio的一些特性
  • Fast-LIO - 目前最好用的前端里程计之一,几乎同时兼具速度与鲁棒性
  • Faster-LIO - 比Fast LIO快1-1.5倍的前端里程计
  • SC-A-LOAM - Scancontext + 现在的SOTA里程计(Lego-loam, fast lio, a loam etc.)

6. Planning

规划

  • 自动驾驶中的决策规划算法概述
  • 有限状态机
  • MPC
  • PathPlanning
  • pacmod - Designed to allow the user to control a vehicle with the PACMod drive-by-wire system.
  • rrt - C++ RRT (Rapidly-exploring Random Tree) implementation.
  • HypridAStarTrailer - A path planning algorithm based on Hybrid A* for trailer truck.
  • path_planner - Hybrid A* Path Planner for the KTH Research Concept Vehicle.
  • fastrack - A ROS implementation of Fast and Safe Tracking (FaSTrack).
  • commonroad - Composable benchmarks for motion planning on roads.
  • traffic-editor - A graphical editor for robot traffic flows.
  • steering_functions - Contains a C++ library that implements steering functions for car-like robots with limited turning radius.
  • moveit - Easy-to-use robotics manipulation platform for developing applications, evaluating designs, and building integrated products.
  • flexible-collision-library - A library for performing three types of proximity queries on a pair of geometric models composed of triangles.
  • aikido - Artificial Intelligence for Kinematics, Dynamics, and Optimization.
  • casADi - A symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs.
  • ACADO Toolkit - A software environment and algorithm collection for automatic control and dynamic optimization.
  • CrowdNav - Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning.
  • ompl - Consists of many state-of-the-art sampling-based motion planning algorithms.
  • openrave - Open Robotics Automation Virtual Environment: An environment for testing, developing, and deploying robotics motion planning algorithms.
  • teb_local_planner - An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands.
  • pinocchio - A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives.
  • rmf_core - The rmf_core packages provide the centralized functions of the Robotics Middleware Framework (RMF).
  • global_racetrajectory_optimization - This repository contains multiple approaches for generating global racetrajectories.
  • toppra - A library for computing the time-optimal path parametrization for robots subject to kinematic and dynamic constraints.
  • tinyspline - TinySpline is a small, yet powerful library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves.
  • dual quaternions ros - ROS python package for dual quaternion SLERP.
  • mb planner - Aerial vehicle planner for tight spaces. Used in DARPA SubT Challenge.
  • ilqr - Iterative Linear Quadratic Regulator with auto-differentiatiable dynamics models.
  • EGO-Planner - A lightweight gradient-based local planner without ESDF construction, which significantly reduces computation time compared to some state-of-the-art methods.
  • pykep - A scientific library providing basic tools for research in interplanetary trajectory design.
  • am_traj - Alternating Minimization Based Trajectory Generation for Quadrotor Aggressive Flight.
  • GraphBasedLocalTrajectoryPlanner - Was used on a real race vehicle during the Roborace Season Alpha and achieved speeds above 200km/h.
  • Ruckig - Instantaneous Motion Generation. Real-time. Jerk-constrained. Time-optimal.

7. Control

控制

  • PID
  • Open Source Car Control - An assemblage of software and hardware designs that enable computer control of modern cars in order to facilitate the development of autonomous vehicle technology.
  • control-toolbox - An efficient C++ library for control, estimation, optimization and motion planning in robotics.
  • mpcc - Model Predictive Contouring Controller for Autonomous Racing.
  • open_street_map - ROS packages for working with Open Street Map geographic information.
  • autogenu-jupyter - This project provides the continuation/GMRES method (C/GMRES method) based solvers for nonlinear model predictive control (NMPC) and an automatic code generator for NMPC.
  • OpEn - A solver for Fast & Accurate Embedded Optimization for next-generation Robotics and Autonomous Systems.

9. Dataset and Competition

数据集与竞赛

  • KITTI
  • BDD100k
  • UrbanNav - 一个在亚洲城市峡谷(包括东京和香港)收集的开源本地化数据集,主要用于解决定位算法的各种问题。
  • ONCE
  • SODA10M
  • OPV2V - 首个大型自动驾驶协同感知数据集 + banchmark代码框架, 由UCLA提供

10. Data Loop

数据闭环

主动学习

11. Visualization

可视化工具

  • Carla-birdeye-view - 可以对接carla的自动驾驶鸟瞰图组件。
  • Uber AVS - 自动驾驶可视化前端组件 xviz 与 streetscape.gl
  • Cruise - Cruise 开源的一款自动驾驶前端可视化套件

12. Others

其他更好的分享