Giter Club home page Giter Club logo

awesome-self-driving's Introduction

The Awesome Self-Driving List Awesome

Contents

1. Self-Driving Software

  • apollo - An open autonomous driving platform.
  • Autoware.ai - Open-source software for self-driving vehicles.
  • AutowareArchitectureProposal.proj - This is the source code of the feasibility study for Autoware architecture proposal.
  • self-driving-ish_computer_vision_system - This project generates images you've probably seen in autonomous driving demo.
  • Aslan - Open source self-driving software for low speed environments.
  • AutoC2X-AW - AutoC2X is cooperative awareness driving software, extension for Autoware and OpenC2X.

2. Planning

  • omg-tools - Optimal Motion Generation-tools: motion planning made easy.
  • gbplanner_ros - Graph-based Exploration Planner for Subterranean Environments.
  • path_planner - Hybrid A* Path Planner for the KTH Research Concept Vehicle.
  • PathPlanning - Common used path planning algorithms with animations.
  • MotionPlanning - Motion planning algorithms commonly used on autonomous vehicles. (path planning + path tracking).
  • se2_navigation - Pure pursuit controller and Reeds-Shepp sampling based planner for navigation in SE(2) space.
  • far_planner - Fast, Attemptable Route Planner for Navigation in Known and Unknown Environments
  • mesh_navigation - The Mesh Navigation bundle provides software to perform efficient robot navigation on 2D-manifolds in 3D represented as triangular meshes.
  • path_optimizer - Real-time path planning for vehicles.
  • full_coverage_path_planner - Full coverage path planning provides a move_base_flex plugin that can plan a path that will fully cover a given area.
  • conformal_lattice_planner - conformal lattice planner C++ implementations for autonomous driving tasks. The software is build upon Carla and ROS.

3. HD Map

  • fmm - Fast map matching, an open source framework in C++.
  • Tier4 Tool - Vector Map Builder is a tool that helps to create a vector map from point cloud data.

3.1. Lanelet2

  • MapToolbox - Plugins to make Lanelet2/vector_map in Unity.
  • AssureMappingTools - Desktop based tool for viewing, editing and saving road network maps for autonomous vehicle platforms such as Autoware.
  • Lanelet2 - Map handling framework for automated driving.
  • lanelet_rviz_plugin_ros - Rviz Plugin for displaying a lanelet2 map.

3.2. OSM

  • JOSM - The Java OpenStreetMap Editor.
  • prettymaps - A small set of Python functions to draw pretty maps from OpenStreetMap data. Based on osmnx, matplotlib and shapely libraries.
  • GMapCatcher - An offline map viewer.

3.3. OpenDrive

3.4. Others

4. Semantic

  • lift-splat-shoot - Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D (ECCV 2020).
  • lidar-bonnetal - Semantic and Instance Segmentation of LiDAR point clouds for autonomous driving.
  • Kimera-Semantics - Real-Time 3D Semantic Reconstruction from 2D data.
  • semantic_suma - SuMa++: Efficient LiDAR-based Semantic SLAM (Chen et al IROS 2019).
  • mmsegmentation - OpenMMLab Semantic Segmentation Toolbox and Benchmark.

5. Calibration

  • multiple-cameras-and-3D-LiDARs-extrinsic-calibration - This repo contains source code of our paper presented in IROS2021 "Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs"
  • SensorsCalibration - OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving.
  • multi_sensor_calibration - A calibration tool to calibrate a sensor setup consisting of lidars, radars and cameras.
  • camera_calibration - Accurate geometric camera calibration with generic camera models.
  • image_projection - Image_projection is a ROS package to create various projections from multiple calibrated cameras.
  • velo2cam_calibration - Automatic Extrinsic Calibration Method for LiDAR and Camera Sensor Setups. ROS Package.
  • lidar_camera_calibration - Light-weight camera LiDAR calibration package for ROS using OpenCV and PCL (PnP + LM optimization).
  • atom - Calibration tools for multi-sensor, multi-modal, robotic systems.
  • FastCertRelPose - Fast and robust certifiable relative pose estimation.
  • ACSC - Automatic Calibration for Non-repetitive Scanning Solid-State LiDAR and Camera Systems.
  • kalibr - The Kalibr visual-inertial calibration toolbox.
  • SensorCalibration - IMU-Lidar Extrinsic Calibration Package.
  • lidar_IMU_calib - Targetless Calibration of LiDAR-IMU System Based on Continuous-time Batch Estimation.
  • lidar_align - A simple method for finding the extrinsic calibration between a 3D lidar and a 6-dof pose sensor.
  • extrinsic_lidar_camera_calibration - This is a package for extrinsic calibration between a 3D LiDAR and a camera, described in paper: Improvements to Target-Based 3D LiDAR to Camera Calibration.
  • mrcal - MRCAL is a generic toolkit to solve calibration and SFM-like problems originating at NASA/JPL.

6. Detection

  • MapTR - [ICLR'23 Spotlight] MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction
  • patchwork++ - Patchwork++: Fast and robust ground segmentation method for 3D point cloud. @ IROS'22.
  • urban_road_filter - Real-time LIDAR-based Urban Road and Sidewalk detection for Autonomous Vehicles.
  • conditional-lane-detection - "CondLaneNet: a Top-to-down Lane Detection Framework Based on ConditionalConvolution".
  • LaneATT - Code for the paper entitled "Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection" (CVPR 2021).
  • Pseudo-LiDAR - (CVPR 2019) Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving.
  • depth_clustering - Fast and robust clustering of point clouds generated with a Velodyne sensor.
  • AB3DMOT - Official Python Implementation for "3D Multi-Object Tracking: A Baseline and New Evaluation Metrics".
  • JRMOT_ROS - A Real-Time 3D Multi-Object Tracker.
  • bbox - Python library for 2D/3D bounding boxes.
  • CLOCs - CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection
  • CenterFusion - CenterFusion: Center-based Radar and Camera Fusion for 3D Object Detection.
  • CenterPoint - Center-based 3D Object Detection and Tracking.
  • OpenPCDet - OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
  • LaneDetection_End2End - End-to-end Lane Detection for Self-Driving Cars (ICCV 2019 Workshop).
  • VoxelNetRos - Implement the VoxelNet with ROS, using Kitti data to test.
  • PLARD - Progressive LiDAR Adaptation for Road Detection.
  • RoadMarkingExtraction - A C++ Program for automatically extraction of road markings from MLS or ALS point cloud [ISPRS-A' 19].

7. Control

  • MPCC - Model Predictive Contouring Controller (MPCC) for Autonomous Racing.
  • mpc_local_planner - It provides a generic and versatile model predictive control implementation with minimum-time and quadratic-form receding-horizon configurations.

8. SLAM

8.1. Lidar-based

  • LT-mapper - A Modular Framework for LiDAR-based Lifelong Mapping.
  • clins - CLINS: Continuous-Time Trajectory Estimation for LiDAR-Inertial System.
  • LIO-SAM - LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping.
  • LINS---LiDAR-inertial-SLAM - A Lidar-Inertial State Estimator for Robust and Efficient Navigation based on iterated error-state Kalman filter.
  • LaMa - A Localization and Mapping library. Low computational effort and low memory usage whenever possible.
  • LeGO-LOAM - Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain.
  • loam_livox - A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR.
  • decentralized_loam - A decentralized framework for simultaneous calibration, localization and mapping with multiple LiDARs
  • SC-LIO-SAM - LiDAR-inertial SLAM: Scan Context + LIO-SAM.
  • MULLS - MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square.
  • lili-om - LiLi-OM is a tightly-coupled, keyframe-based LiDAR-inertial odometry and mapping system for both solid-state-LiDAR and conventional LiDARs.
  • PyICP-SLAM - Full-python LiDAR SLAM using ICP and Scan Context.
  • SC-LeGO-LOAM - LiDAR SLAM: Scan Context + LeGO-LOAM.
  • A-LOAM - Advanced implementation of LOAM.
  • floam - Fast LOAM: Fast and Optimized Lidar Odometry And Mapping for indoor/outdoor localization (Lidar SLAM).
  • hdl_graph_slam - 3D LIDAR-based Graph SLAM.
  • lio-mapping - Implementation of Tightly Coupled 3D Lidar Inertial Odometry and Mapping (LIO-mapping).
  • M-LOAM - Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration.

8.2. Camera-based

  • VINS-Fusion - An optimization-based multi-sensor state estimator
  • VINS-Mono - A Robust and Versatile Monocular Visual-Inertial State Estimator.
  • ov2slam - OV²SLAM is a Fully Online and Versatile Visual SLAM for Real-Time Applications.
  • ORB_SLAM3 - ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM.

8.3. Lidar-Camera-based

  • r3live - A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package.
  • LVI-SAM - LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping.
  • CamVox - A low-cost SLAM system based on camera and Livox lidar.

8.4. Odometry

  • Faster-LIO - Faster-LIO: Lightweight Tightly Coupled Lidar-inertial Odometry using Parallel Sparse Incremental Voxels.
  • FAST_LIO - A computationally efficient and robust LiDAR-inertial odometry (LIO) package.
  • ESVO - This repository maintains the implementation of "Event-based Stereo Visual Odometry".
  • LOL - LOL: Lidar-only Odometry and Localization in 3D point cloud maps.

8.5. Registration

  • Quatro - Fast and robust global registration for terrestrial robots @ ICRA2022.
  • UnsupervisedR&R - Unsupervised Pointcloud Registration via Differentiable Rendering.
  • 3d-icp-cov - Code for the paper "A New Approach to 3D ICP Covariance Estimation for Mobile Robotics".
  • TEASER-plusplus - A fast and robust point cloud registration library.
  • FS3R - A Fast Symbolic 3D Registration Solution from HKUST RAM-LAB.

8.6. Optimization

  • voxgraph - Voxblox-based Pose graph optimization.
  • Kimera-RPGO - Robust Pose Graph Optimization.
  • MOLA - A Modular Optimization framework for Localization and mapping.

8.7. Loop Closing

  • scancontext - Global LiDAR descriptor for place recognition and long-term localization.
  • OverlapNet - OverlapNet - Loop Closing for 3D LiDAR-based SLAM (chen2020rss).

8.8. Other

  • evo - Python package for the evaluation of odometry and SLAM.
  • libRSF - A robust sensor fusion library for online localization.
  • interactive_slam - Interactive Map Correction for 3D Graph SLAM.
  • slam_docker_collection - A collection of docker environments for 3D SLAM packages.
  • removert - Remove then revert (IROS 2020).

9. GPS, IMU

  • imu_tools - ROS tools for IMU devices.
  • PPPLib - Precise Point Positioning Library.
  • RTKLIB - RTKLIB is an open source program package for standard and precise positioning. with GNSS (global navigation satellite system).
  • gnss-ins-sim - Open-source GNSS + inertial navigation, sensor fusion simulator. Motion trajectory generator, sensor models, and navigation.
  • rtklib_ros_bridge - Rtklib_ros_bridge is a package that outputs the latitude and longitude, satellite reception status, altitude, ecef xyz, ecef velocity vector, and Time of Week (GPS Time) calculated by RTKLIB as ROS messages.
  • ntpd_driver - This node convert ROS TimeReference message to ntpd-shm format.
  • eagleye - Precise localization based on GNSS and IMU.
  • GPS_IMU_Kalman_Filter - Fusing GPS, IMU and Encoder sensors for accurate state estimation.
  • imu_utils - A ROS package tool to analyze the IMU performance.

10. Dataset

  • Argoverse 2 dataset - Official GitHub repository for the Argoverse 2 family of datasets.
  • kapture - Kapture is a file format as well as a set of tools for manipulating datasets, and in particular Visual Localization and Structure from Motion data.
  • UrbanLoco - UrbanLoco: A Full Sensor Suite Dataset for Mapping and Localization in Urban Scenes.
  • UrbanNavDataset - UrbanNav: an Open-Sourcing Localization Data Collected in Asian Urban Canyons, Including Tokyo and Hong Kong.
  • mapping_dataset_styria - Open mapping dataset of styria in Austria.

11. Simulation

  • AWSIM - Open source simulator for self-driving vehicles.
  • carla - Open-source simulator for autonomous driving research.
  • autocore_sim - A ROS1/ROS2 Multi-robot Simulator for Autoware.
  • highway-env - A minimalist environment for decision-making in autonomous driving.
  • LGSVL - A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles.

12. Visualization

  • rosshow - Visualize ROS topics inside a terminal with Unicode/ASCII art.
  • rosbag_fancy - Fancy terminal UI for rosbag.
  • zethus - Realtime robot data visualization in the browser.
  • webviz - Web-based visualization libraries.
  • Foxglove Studio - Foxglove Studio (foxglove.dev) is an integrated visualization and diagnosis tool for robotics.
  • 3D-Detection-Tracking-Viewer - 3D detection and tracking viewer (visualization) for kitti & waymo dataset.
  • rviz_satellite - Display internet satellite imagery in RViz.
  • mapviz - Modular ROS visualization tool for 2D data.
  • streetscape.gl - Visualization framework for autonomy and robotics data encoded in XVIZ.
  • rviz_visual_tools - C++ API wrapper for displaying shapes and meshes in Rviz.
  • PlotJuggler - The Time Series Visualization Tool that you deserve.

13. Web

  • rosboard - ROS node that turns your robot into a web server to visualize ROS topics.
  • webrtc_ros - Streaming of ROS Image Topics using WebRTC.
  • AutomanTools - AutomanTools is an open-source software for self-driving AI.
  • Rosbag-Analyser - Interactive Post-mortem/Live Analysis of ROS Bag Files.

14. Study

  • visual-slam-roadmap - Roadmap to becoming a Visual-SLAM developer in 2021.
  • RosHowTwo - A place to find and share ROS2 learning resources!
  • Eigen-Cheatsheet - A cheatsheet of Eigen, the C++ linear algebra library.
  • slambook2 - Edition 2 of the slambook.
  • CppRobotics - Cpp implementation of robotics algorithms including localization, mapping, SLAM, path planning and control.
  • self-driving-car - The Udacity open source self-driving car project.
  • Dig-into-Apollo - Apollo notes - Apollo learning notes for beginners.
  • Autoware_tutorial - Autoware Simple Tutorial for Self-driving Car.

15. Other Tool

  • PoseLib - Minimal solvers for calibrated camera pose estimation
  • ros2-for-unity - High-performance ROS2 solution for Unity3D.
  • semantic-segmentation-editor - Web labeling tool for bitmap images and point clouds.
  • MegBA - MegBA: A Distributed High-Performance Library for Large-Scale Bundle Adjustment with GPUs.
  • ikd-Tree - This repository provides implementation of an incremental k-d tree for robotic applications.
  • ros_msft_onnx - ONNX Runtime for the Robot Operating System (ROS), works on ROS1 and ROS2.
  • catkin_virtualenv - Bundle python requirements in a catkin package via virtualenv.
  • pal_statistics - The PAL Statistics Framework provides a way of gathering, aggregating, storing and visualizing statistics from arbitrary sources in a flexible and real-time safe way in ROS.
  • CARLA Autonomous Driving Leaderboard - The main goal of the CARLA Autonomous Driving Leaderboard is to evaluate the driving proficiency of autonomous agents in realistic traffic situations.
  • PUMA - Poisson Surface Reconstruction for LiDAR Odometry and Mapping.
  • RoboStack for ROS Noetic - RoboStack, which tightly couples ROS with Conda, a cross-platform, language-agnostic package manager.
  • modelzoo - A collection of machine-learned models for use in autonomous driving applications.
  • ROSIntegration - Unreal Engine Plugin to enable ROS Support.
  • jupyter-ros - Jupyter widget helpers for ROS, the Robot Operating System.
  • jupyterlab-ros - Helper extensions for running ROS from within JupyterLab.
  • rosbag_editor - Create a rosbag from a given one, using a simple GUI.
  • laser_line_extraction - A ROS package that extracts line segments from LaserScan messages.
  • python-pcl - Python bindings to the pointcloud library (pcl).
  • ros_deep_learning - Deep learning inference nodes for ROS with support for NVIDIA Jetson TX1/TX2/Xavier and TensorRT.
  • imgui_ros - View ros images, visualize in 2D and 3D, and interact with nodes through topics and services using ocornut/imgui.
  • ROS-Mobile-Android - Visualization and controlling application for Android.
  • PPTK - The Point Processing Toolkit (pptk) is a Python package for visualizing and processing 2-d/3-d point clouds.

16. Other Awesome

17. For Chinese

awesome-self-driving's People

Contributors

kuzen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.