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(中间件与解决方案)
- 2. Sensor and Calibration Tools(传感器与参数标定)
- 3. Perception
- 4. Prediction
- 5. Localization and SLAM(定位与SLAM)
- 6. Planning
- 7. Control
- 8. Dataset and Competition(数据集与竞赛)
- 9. Visualization(可视化工具)
- 10. Data Loop(数据闭环)
- 11. Simulation(仿真)
- 12. Others(其他更好的)
中间件
- 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.
解决方案
- Apollo - The intergrated solution from baidu.
- Autoware.ai - Open-source software for self-driving vehicles known as Autoware-1.
- Autoware.auto - Open-source software for self-driving vehicles known as Autoware-2.
- AutowareArchitectureProposal.proj - Manages several projects related to self-driving vehicles.
- self-driving-ish_computer_vision_system - This project generates images you've probably seen in autonomous driving demo.
- Aslan - An open-source full-stack software based on ROS framework.
- AutoC2X-AW - Extension for Autoware and OpenC2X.
传感器硬件
LiDAR
- velodyne - velodyne lidar driver for ros.
- livox_ros_driver - livox (a low cost lidar form DJI) lidar driver.
- rslidar_sdk - lidar driver from Robosense.
- ros2_ouster_drivers - ROS2 Drivers for the Ouster OS-0, OS-1, and OS-2 Lidars.
Camera
- miivii_gmsl_camera - 米文摄像头
- sensing - 森云 - 森云摄像头
- Hikvision - You can download SDK.
- usb_cam - all most ros1 usb camera driver you can buy from Taobao/Aliexpress.
- ros2_usb_camera - all most ros2 usb camera driver you can buy from Taobao/Aliexpress.
GPS/IMU
- huace - 华测组合导航产品
- novatel_gps_driver - C++ ROS driver for NovAtel GPS / GNSS Receivers.
MCU
- STM32Cube_MCU_Overall_Offer - The open source offer for the STM32 MCU products.
参数标定工具
- 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时间戳硬件同步方案
检测与分割
基于视觉
Lane Detection
- Advanced-Lane-Detection - 一个非常适合新人的车道检测任务的小demo
- RESA
- LaneDet
- CondLaneNet
- Focus on Local: Detecting Lane Marker from Bottom Up via Key Point
- LaneNet-Lane-Detection
- urban_road_filter 一种实时的道路边缘检测分割工具
- Cam2BEV - Cam2BEV一个将多路周视摄像头的语义分割结果融合在一个鸟瞰图的工具,并且该方法不需要手工对鸟瞰图进行标注通过合成的数据进行训练。
- YOLOP - 来自华中科技大学的作品,也是yolo系列的另一力作,本项目提出额一种高效的多任务网络,可以联合处理自动驾驶中的多个任务(目标检测,可行驶区域分割与车道检测三个关键任务),值得注意的是在BDD100K中该方法实现了SOTA的情况下还保持了嵌入式友好。
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.
基于激光雷达
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.
追踪算法
- SimpleTrack - Simple yet Effective 3D Multi-object Tracking.
- ImmortalTracker - Our mismatch ratio is tens of times lower than any previously published method.
- Yolov5_DeepSort_Pytorch - 基于yolo-v5的目标追踪
高性能推理
视觉系列
- Lite.ai - 该项目提供了一系列轻量级的目标检测语义分割任务的整合框架支持 YOLOX🔥, YoloR🔥, YoloV5, YoloV4, DeepLabV3, ArcFace, CosFace, RetinaFace, SSD, etc.
- multi-attention -> onnx -
提供了一个多头注意力机制支持onnx部署的方式
LiDAR Pillars系列
- CUDA-PointPillars - NV官方PointPillars部署方案
- nutonomy_pointpillars - PointPillars
- mmdet3d_onnx_tools - PointPillars
- CenterPoint - CenterPoint-PonintPillars
- PointPillars_MultiHead_40FPS - MultiHead PointPillars
- 我自己的 ROS Lidar Perception TensorRT部署
- CenterPoint - CenterPoint 推理方案 ROS
- [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
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.)
规划
- 自动驾驶中的决策规划算法概述
- 有限状态机
- 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.
控制
- 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.
数据集与竞赛
- KITTI
- BDD100k
- UrbanNav - 一个在亚洲城市峡谷(包括东京和香港)收集的开源本地化数据集,主要用于解决定位算法的各种问题。
- ONCE
- SODA10M
- OPV2V - 首个大型自动驾驶协同感知数据集 + banchmark代码框架, 由UCLA提供
数据闭环
主动学习
可视化工具
- Carla-birdeye-view - 可以对接carla的自动驾驶鸟瞰图组件。
- Uber AVS - 自动驾驶可视化前端组件 xviz 与 streetscape.gl
- Cruise - Cruise 开源的一款自动驾驶前端可视化套件
其他更好的分享