/awesome-robotic-tooling

Tools for professional robotic development in C++ and Python with a touch of autonomous driving and aerospace

The UnlicenseUnlicense

Awesome Robotic Tooling Awesome

Just a bunch of powerful robotic resources and tools for professional development in C++ or Python with a touch of autonomous driving and aerospace.

Unix philosophy - about the concept of software tooling

Communication and Coordination

  • Agile Development - Manifesto for Agile Software Development
  • Gitflow - Makes parallel development very easy, by isolating new development from finished work
  • DeepL - an online translator that outperforms Google, Microsoft and Facebook
  • Taiga - Agile Projectmanagment Tool
  • Kanboard - Minimalistic Kanban Board
  • kanban - Free, open source, self-hosted, Kanban board for GitLab issues
  • Gitlab - Simple Selfhosted Gitlab Server with Docker
  • Gogs - build a simple, stable and extensible self-hosted Git service that can be setup in the most painless way
  • Wekan - Meteor based Kanban Board
  • JIRA API - Python Library for REST API of Jira
  • Taiga API - Python Library for REST API of Taiga
  • Chronos-Timetracker - Desktop client for JIRA. Track time, upload worklogs without a hassle
  • Grge - Grge is a daemon and command line utility augmenting GitLab
  • gitlab-triage - GitLab's issues and merge requests triage, automated!
  • Helpy - is a modern, open source helpdesk customer support application
  • ONLYOFFICE - is a free open source collaborative system developed to manage documents, projects, customer relationship and email correspondence, all in one place.
  • discourse - A platform for community discussion. Free, open, simple
  • Gerrit - is a code review and project management tool for Git based projects
  • jitsi-meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application
  • mattermost - is an open source, private cloud, Slack-alternative
  • openproject - is the leading open source project management software
  • hackmd - Online Real-time collaborate on team documentation in markdown
  • leantime - Leantime is a lean project management system for innovators

Documentation and Presentation

  • Typora - A Minimalist Markdown Editor
  • Markor - A Simple Markdown Editor for your Android Device
  • Pandoc - Universal markup converter
  • Yaspeller - Command line tool for spell checking
  • ReadtheDocs - Build your local ReadtheDocs Server
  • Doxygen - Doxygen is the de facto standard tool for generating documentation from annotated C++ sources
  • Sphinx - is a tool that makes it easy to create intelligent and beautiful documentation for Python projects
  • Word-to-Markdown - A ruby gem to liberate content from Microsoft Word document
  • paperless - Index and archive all of your scanned paper documents
  • carbon - Share beautiful images of your source code
  • undraw - Free Professional business SVGs easy to customize
  • asciinema - lets you easily record terminal sessions and replay them in a terminal as well as in a web browser.
  • inkscape - Inkscape is a professional vector graphics editor for Linux, Windows and macOS
  • Reveal-Hugo - A Hugo theme for Reveal.js that makes authoring and customization a breeze. With it, you can turn any properly-formatted Hugo content into a HTML presentation.
  • Hugo-Webslides - This is a Hugo template to create WebSlides presentation using markdown.
  • jupyter2slides - Cloud Native Presentation Slides with Jupyter Notebook + Reveal.js
  • patat - Terminal-based presentations using Pandoc
  • github-changelog-generator - Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
  • GitLab-Release-Note-Generator - A Gitlab release note generator that generates release note on latest tag
  • OCRmyPDF - adds an OCR text layer to scanned PDF files, allowing them to be searched
  • papermill - is a tool for parameterizing, executing, and analyzing Jupyter Notebooks.
  • docsy - An example documentation site using the Docsy Hugo theme
  • actions-hugo - Deploy website based on Hugo to Github Pages
  • overleaf - An open-source online real-time collaborative LaTeX editor
  • landslide - Generate HTML5 slideshows from markdown, ReST, or textile
  • libreoffice-impress-templates - Freely-licensed LibreOffice Impress templates
  • opensourcedesign - Community and Resources for Free Design and Logo Creation
  • olive - is a free non-linear video editor aiming to provide a fully-featured alternative to high-end professional video editing software
  • buku - Browser-independent bookmark manager
  • swiftlatex - a WYSIWYG Browser-based LaTeX Editor
  • ReLaXed - allows complex PDF layouts to be defined with CSS and JavaScript, while writing the content in a friendly, minimal syntax close to Markdown or LaTeX.
  • foam - Foam is a personal knowledge management and sharing system inspired by Roam Research, built on Visual Studio Code and GitHub.

Requirements and Safety

  • awesome-safety-critical - List of resources about programming practices for writing safety-critical software.
  • open-autonomous-safety - OAS is a fully open-source library of Voyage’s safety processes and testing procedures, designed to supplement existing safety programs at self-driving car startups across the world.
  • CarND-Functional-Safety-Project - Create functional safety documents in this Udacity project
  • Automated Valet Parking Safety Documents - created to support the safe testing of the Automated Valet Parking function using the StreetDrone test vehicle in a car park.
  • safe_numerics - Replacements to standard numeric types which throw exceptions on errors
  • Air Vehicle C++ development coding standards - Provide direction and guidance to C++ programmers that will enable them to employ good programming style and proven programming practices leading to safe, reliable, testable, and maintainable code
  • AUTOSAR Coding Standard - Guidelines for the use of the C++14 language in critical and safety-related system
  • The W-Model and Lean Scaled Agility for Engineering - Ford applied an agile V-Model method from Vector that can be used in safety related project management
  • doorstep - Requirements management using version control
  • capella - Comprehensive, extensible and field-proven MBSE tool and method to successfully design systems architecture
  • robmosys - RobMoSys envisions an integrated approach built on top of the current code-centric robotic platforms, by applying model-driven methods and tools
  • Papyrus for Robotics - is graphical editing tool for robotic applications that complies with the RobMoSys approach
  • fossology - a toolkit you can run license, copyright and export control scans from the command line
  • ScenarioArchitect - The Scenario Architect is a basic python tool to generate, import and export short scene snapshots

Architecture and Design

  • Guidelines - on how to architect ROS-based systems
  • yed - yEd is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams
  • yed_py - Generates graphML that can be opened in yEd
  • Plantuml - Web application to generate UML diagrams on-the-fly in your live documentation
  • rqt_graph - rqt_graph provides a GUI plugin for visualizing the ROS computation graph
  • rqt_launchtree - An RQT plugin for hierarchical launchfile configuration introspection.
  • cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format)
  • pydeps - Python Module Dependency graphs
  • aztarna - a footprinting tool for robots.
  • draw.io - is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams
  • vscode-drawio - This extension integrates Draw.io into VS Code

Frameworks and Stacks

  • ROS - (Robot Operating System) provides libraries and tools to help software developers create robot applications
  • awesome-ros2 - A curated list of awesome Robot Operating System Version 2.0 (ROS 2) resources and libraries.
  • Autoware.Auto - Autoware.Auto applies best-in-class software engineering for autonomous driving
  • Autoware.ai - Autoware.AI is the world's first "All-in-One" open-source software for autonomous driving technology
  • OpenPilot - Open Source Adaptive Cruise Control (ACC) and Lane Keeping Assist System (LKAS)
  • Apollo - High performance, flexible architecture which accelerates the development, testing, and deployment of Autonomous Vehicles.
  • PythonRobotics - This is a Python code collection of robotics algorithms, especially for autonomous navigation.
  • Stanford Self Driving Car Code - Stanford Code From Cars That Entered DARPA Grand Challenges
  • astrobee - Astrobee is a free-flying robot designed to operate as a payload inside the International Space Station (ISS).
  • CARMAPlatform - enables cooperative automated driving plug-in
  • Automotive Grade Linux - Automotive Grade Linux is a collaborative open source project that is bringing together automakers, suppliers and technology companies to accelerate the development and adoption of a fully open software stack for the connected car
  • PX4 - is an open source flight control software for drones and other unmanned vehicles
  • KubOS - is an open-source software stack for satellites.
  • mod_vehicle_dynamics_control - TUM Roborace Team Software Stack - Path tracking control, velocity control, curvature control and state estimation.
  • Aslan - Open source self-driving software for low speed environments

Development Environment

Code and Run

  • Vim-ros - Vim plugin for ROS development
  • Visual Studio Code - Code editor for edit-build-debug cycle.
  • atom - Hackable text editor for the 21st century
  • Teletype - Share your workspace with team members and collaborate on code in real time in Atom
  • Sublime - A sophisticated text editor for code, markup and prose
  • ade-cli - The ADE Development Environment (ADE) uses docker and Gitlab to manage environments of per project development tools and optional volume images
  • recipe-wizard - A Dockerfile generator for running OpenGL (GLX) applications with nvidia-docker2, CUDA, ROS, and Gazebo on a remote headless server system
  • Jupyter ROS - Jupyter widget helpers for ROS, the Robot Operating System
  • ros_rqt_plugin - The ROS Qt Creator Plug-in for Python
  • xeus-cling - Jupyter kernel for the C++ programming language
  • ROS IDEs - This page collects experience and advice on using integrated development environments (IDEs) with ROS.
  • TabNine - The all-language autocompleter
  • kite - Use machine learning to give you useful code completions for Python
  • jedi - Autocompletion and static analysis library for python
  • roslibpy - Python ROS Bridge library allows to use Python and IronPython to interact with ROS, the open-source robotic middleware.
  • pybind11 - Seamless operability between C++11 and Python
  • Sourcetrail - free and open-source cross-platform source explorer
  • rebound - Command-line tool that instantly fetches Stack Overflow results when an exception is thrown
  • mybinder - open notebooks in an executable environment, making your code immediately reproducible by anyone, anywhere.
  • ROSOnWindows - an experimental release of ROS1 for Windows
  • live-share - Real-time collaborative development from the comfort of your favorite tools
  • cocalc - Collaborative Calculation in the Cloud
  • EasyClangComplete - Robust C/C++ code completion for Sublime Text 3

Template

  • ROS - Template for ROS node standardization in C++
  • Launch - Templates on how to create launch files for larger projects
  • Bash - A bash scripting template incorporating best practices & several useful functions
  • URDF - Examples on how to create Unified Robot Description Format (URDF) for different kinds of robots
  • Python - Style guide to be followed in writing Python code for ROS
  • Docker - The Dockerfile in the minimal-ade project shows a minimal example of how to create a custom base image

Build and Deploy

  • qemu-user-static - is to enable an execution of different multi-architecture containers by QEMU and binfmt_misc
  • Cross compile ROS 2 on QNX - introduces how to cross compile ROS 2 on QNX
  • bloom - A release automation tool which makes releasing catkin packages easier
  • superflore - An extended platform release manager for Robot Operating System
  • catkin_tools - Command line tools for working with catkin
  • industrial_ci - Easy continuous integration repository for ROS repositories
  • ros_gitlab_ci - contains helper scripts and instructions on how to use Continuous Integration (CI) for ROS projects hosted on a GitLab instance.
  • gitlab-runner - runs tests and sends the results to GitLab
  • colcon-core - command line tool to improve the workflow of building, testing and using multiple software packages
  • gitlab-release - Simple python3 script to upload files (from ci) to the current projects release (tag)
  • clang - This is a compiler front-end for the C family of languages (C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM compiler infrastructure project
  • catkin_virtualenv - Bundle python requirements in a catkin package via virtualenv
  • pyenv - Simple Python version management
  • aptly - Debian repository management tool
  • cross_compile - Assets used for ROS2 cross-compilation
  • docker_images - Official Docker images maintained by OSRF on ROS(2) and Gazebo
  • robot_upstart - presents a suite of scripts to assist with launching background ROS processes on Ubuntu Linux PCs
  • robot_systemd - units for managing startup and shutdown of roscore and roslaunch
  • ryo-iso - is a modern ISO builder that streamlines the process of deploying a complete robot operating system from a yaml config file
  • network_autoconfig - automatic configuration of ROS networking for most use cases without impacting usage that require manual configuration.
  • rosbuild - The ROS build farm

Unit and Integration Test

  • setup-ros - This action sets up a ROS and ROS 2 environment for use in Github actions
  • UnitTesting - This page lays out the rationale, best practices, and policies for writing and running unit tests and integration tests for ROS.
  • googletest - Google's C++ test framework
  • pytest - The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
  • doctest - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD
  • osrf_testing_tools_cpp - contains testing tools for C++, and is used in OSRF projects.
  • code_coverage - ROS package to run coverage testing

Lint and Format

  • action-ros-lint - Github action to run linters on ROS 2 packages
  • cppcheck - Static analysis of C/C++ code
  • hadolint - Dockerfile linter, validate inline bash, written in Haskell
  • shellcheck - a static analysis tool for shell scripts
  • catkin_lint - catkin_lint checks package configurations for the catkin build system of ROS.
  • pylint - Pylint is a Python static code analysis tool which looks for programming errors, helps enforcing a coding standard, sniffs for code smells and offers simple refactoring suggestions.
  • black - The uncompromising Python code formatter
  • pydocstyle - pydocstyle is a static analysis tool for checking compliance with Python docstring conventions
  • haros - H(igh) A(ssurance) ROS - Static analysis of ROS application code.

Launch and Monitor

  • rosmon - ROS node launcher & monitoring daemon
  • multimaster_fkie - GUI-based management environment that is very useful to manage ROS-launch configurations and control running nodes

Debugging and Tracing

  • heaptrack - traces all memory allocations and annotates these events with stack traces
  • ros2_tracing - Tracing tools for ROS 2.
  • Linuxperf - Various Linux performance material
  • lptrace - It lets you see in real-time what functions a Python program is running
  • pyre-check - Performant type-checking for python
  • FlameGraph - Visualize profiled code
  • gpuvis - GPU Trace Visualizer
  • sanitizer - AddressSanitizer, ThreadSanitizer, MemorySanitizer
  • cppinsights - C++ Insights - See your source code with the eyes of a compiler
  • inspect - The inspect module provides functions for learning about live objects, including modules, classes, instances, functions, and methods
  • Roslaunch Nodes in Valgrind or GDB - When debugging roscpp nodes that you are launching with roslaunch, you may wish to launch the node in a debugging program like gdb or valgrind instead.
  • pyperformance - Python Performance Benchmark Suite
  • qira - QIRA is a competitor to strace and gdb
  • gdb-frontend - GDBFrontend is an easy, flexible and extensionable gui debugger.
  • lttng - is an open source software toolkit which you can use to simultaneously trace the Linux kernel, user applications, and user libraries.
  • ros2-performance - allows to easily create arbitrary ROS2 systems and then measures their performance
  • bcc - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
  • tracy - A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications.
  • bpftrace - High-level tracing language for Linux eBPF

Version Control

  • git-fuzzy - A CLI interface to git that relies heavily on fzf
  • meld - Meld is a visual diff and merge tool that helps you compare files, directories, and version controlled projects
  • tig - Text-mode interface for git
  • gitg - is a graphical user interface for git
  • git-cola - The highly caffeinated Git GUI
  • python-gitlab - is a Python package providing access to the GitLab server API.
  • bfg-repo-cleaner - Removes large or troublesome blobs like git-filter-branch does, but faster.
  • nbdime - Tools for diffing and merging of Jupyter notebooks.
  • semantic-release - Fully automated version management and package publishing
  • go-semrel-gitab - Automate version management for Gitlab
  • Git-repo - Git-Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow
  • dive - A tool for exploring each layer in a docker image
  • dvc - Management and versioning of datasets and machine learning models
  • learnGitBranching - is a git repository visualizer, sandbox, and a series of educational tutorials and challenges

Simulation

  • Drake - Drake aims to simulate even very complex dynamics of robots
  • Webots - Webots is an open source robot simulator compatible (among others) with ROS and ROS2.
  • lgsv - LG Electronics America R&D Center has developed an HDRP Unity-based multi-robot simulator for autonomous vehicle developers.
  • carla - Open-source simulator for autonomous driving research
  • awesome-CARLA - A curated list of awesome CARLA tutorials, blogs, and related projects.
  • scenario_runner - Traffic scenario definition and execution engine
  • deepdive - End-to-end simulation for self-driving cars
  • uuv_simulator - Gazebo/ROS packages for underwater robotics simulation
  • AirSim - Open source simulator for autonomous vehicles built on Unreal Engine
  • self-driving-car-sim - A self-driving car simulator built with Unity
  • ROSIntegration - Unreal Engine Plugin to enable ROS Support
  • gym-gazebo - An OpenAI gym extension for using Gazebo known as gym-gazebo
  • highway-env - A collection of environments for autonomous driving and tactical decision-making tasks
  • VREP Interface - ROS Bridge for the VREP simulator
  • car_demo - This is a simulation of a Prius in gazebo 9 with sensor data being published using ROS kinetic.
  • sumo - Eclipse SUMO is an open source, highly portable, microscopic and continuous road traffic simulation package designed to handle large road networks
  • open-simulation-interface - A generic interface for the environmental perception of automated driving functions in virtual scenarios.
  • ESIM - an Open Event Camera Simulator
  • Menge - Crowd Simulation Framework
  • pedsim_ros - Pedestrian simulator powered by the social force model for Gazebo
  • opencrg - open file formats and open source tools for the detailed description, creation and evaluation of road surfaces
  • esmini - is a basic OpenSCENARIO player
  • OpenSceneGraph - is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling
  • morse - is an academic robotic simulator, based on the Blender Game Engine and the Bullet Physics engine.
  • ROSIntegrationVision - Support for ROS-enabled RGBD data acquisition in Unreal Engine Projects
  • fetch_gazebo - contains the Gazebo simulation for Fetch Robotics Fetch and Freight Research Edition Robots.
  • rotors_simulator - provides some multirotor models
  • flow - is a computational framework for deep RL and control experiments for traffic microsimulation.
  • gnss-ins-sim - GNSS + inertial navigation, sensor fusion simulator. Motion trajectory generator, sensor models, and navigation
  • Ignition Robotics - Test control strategies in safety, and take advantage of simulation in continuous integration tests.
  • simulation assets for the SubT - This collection contains simulation assets for the SubT Challenge Virtual Competition in Gazebo
  • gazebo_ros_motors - contains currently two motor plugins for Gazebo, one with an ideal speed controller and one without a controller that models a DC motor
  • map2gazebo - ROS package for creating Gazebo environments from 2D maps
  • sim_vehicle_dynamics - Vehicle Dynamics Simulation Software of TUM Roborace Team
  • gym-carla - An OpenAI gym wrapper for CARLA simulator
  • simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton.

Electronics and Mechanics

  • HRIM - An information model for robot hardware
  • URDF - Repository for Unified Robot Description Format (URDF) parsing code
  • phobos - An add-on for Blender allowing to create URDF, SDF and SMURF robot models in a WYSIWYG environment.
  • urdf-viz - Visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
  • solidworks_urdf_exporter - SolidWorks to URDF Exporter
  • FreeCAD - Your own 3D parametric modeler
  • kicad - A Cross Platform and Open Source Electronics Design Automation Suite
  • PcbDraw - Convert your KiCAD board into a nice looking 2D drawing suitable for pinout diagrams
  • PandaPower - An easy to use open source tool for power system modeling, analysis and optimization with a high degree of automation.
  • LibrePCB - A powerful, innovative and intuitive EDA tool for everyone
  • openscad - is software for creating solid 3D CAD models
  • ngspice - is the open source spice simulator for electric and electronic circuits.
  • GNSS-SDR - GNSS-SDR provides interfaces for a wide range of radio frequency front-ends and raw sample file formats, generates processing outputs in standard formats
  • riscv - The Free and Open RISC Instruction Set Architecture
  • urdfpy - is a simple and easy-to-use library for loading, manipulating, saving, and visualizing URDF files.
  • FMPy - Simulate Functional Mockup Units (FMUs) in Python
  • FMIKit-Simulink - Import and export Functional Mock-up Units with Simulink
  • oemof-solph - A modular open source framework to model energy supply systems
  • NASA-3D-Resources - Here you'll find a growing collection of 3D models, textures, and images from inside NASA.
  • SUAVE - An Aircraft Design Toolbox
  • opem - The Open-Source PEMFC Simulation Tool (OPEM) is a modeling tool for evaluating the performance of proton exchange membrane fuel cells
  • pvlib-python - is a community supported tool that provides a set of functions and classes for simulating the performance of photovoltaic energy systems
  • WireViz - is a tool for easily documenting cables, wiring harnesses and connector pinouts.
  • Horizon - EDA is an Electronic Design Automation package supporting an integrated end-to-end workflow for printed circuit board design including parts management and schematic entry.
  • tigl - The TiGL Geometry Library can be used for the computation and processing of aircraft geometries stored inside CPACS files

Sensor Processing

Calibration and Transformation

  • tf2 - transform library, which lets the user keep track of multiple coordinate frames over time
  • lidar_align - A simple method for finding the extrinsic calibration between a 3D lidar and a 6-dof pose sensor
  • kalibr - The Kalibr visual-inertial calibration toolbox
  • Calibnet - Self-Supervised Extrinsic Calibration using 3D Spatial Transformer Networks
  • lidar_camera_calibration - ROS package to find a rigid-body transformation between a LiDAR and a camera
  • ILCC - Reflectance Intensity Assisted Automatic and Accurate Extrinsic Calibration of 3D LiDAR
  • easy_handeye - Simple, straighforward ROS library for hand-eye calibration
  • imu_utils - A ROS package tool to analyze the IMU performance
  • kalibr_allan - IMU Allan standard deviation charts for use with Kalibr and inertial kalman filters
  • pyquaternion - is a full-featured Python module for representing and using quaternions
  • robot_calibration - This package offers calibration of a number of parameters of a robot, such as: 3D Camera intrinsics, extrinsics Joint angle offsets and robot frame offsets
  • multi_sensor_calibration - contains a calibration tool to calibrate a sensor setup consisting of lidars, radars and cameras
  • LiDARTag - A Real-Time Fiducial Tag using Point Clouds Lidar Data
  • multicam_calibration - extrinsic and intrinsic calbration of cameras
  • ikpy - An Inverse Kinematics library aiming performance and modularity
  • livox_camera_lidar_calibration - Calibrate the extrinsic parameters between Livox LiDAR and camera

Perception Pipeline

  • SARosPerceptionKitti - ROS package for the Perception (Sensor Processing, Detection, Tracking and Evaluation) of the KITTI Vision Benchmark Suite
  • multiple-object-tracking-lidar - C++ implementation to Detect, track and classify multiple objects using LIDAR scans or point cloud
  • cadrl_ros - ROS package for dynamic obstacle avoidance for ground robots trained with deep RL
  • AugmentedAutoencoder - RGB-based pipeline for object detection and 6D pose estimation
  • jsk_recognition - is a stack for the perception packages which are used in JSK lab.
  • GibsonEnv - Gibson Environments: Real-World Perception for Embodied Agents
  • morefusion - Multi-object Reasoning for 6D Pose Estimation from Volumetric Fusion

Parallel Processing

  • dask - Parallel computing with task scheduling for Python
  • cupy - NumPy-like API accelerated with CUDA
  • thrust - Thrust is a C++ parallel programming library which resembles the C++ Standard Library.
  • ArrayFire - ArrayFire: a general purpose GPU library.
  • OpenMP - OpenMP is an application programming interface that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortra
  • vexcl - VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
  • PYNQ - is an open-source project from Xilinx that makes it easy to design embedded systems with Zynq All Programmable Systems on Chips

Machine Learning

  • DLIB - A toolkit for making real world machine learning and data analysis applications in C++
  • fastai - The fastai library simplifies training fast and accurate neural nets using modern best practices.
  • tpot - A Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming
  • deap - Distributed Evolutionary Algorithms in Python
  • gym - A toolkit for developing and comparing reinforcement learning algorithms.
  • tensorflow_ros_cpp - A ROS package that allows to do Tensorflow inference in C++ without the need to compile TF yourself.
  • Tensorflow Federated - TensorFlow Federated (TFF) is an open-source framework for machine learning and other computations on decentralized data
  • finn - Fast, Scalable Quantized Neural Network Inference on FPGAs
  • neuropod - Neuropod is a library that provides a uniform interface to run deep learning models from multiple frameworks in C++ and Python
  • leela-zero - This is a fairly faithful reimplementation of the system described in the Alpha Go Zero paper "Mastering the Game of Go without Human Knowledge"
  • trax - Trax is a library for deep learning that focuses on sequence models and reinforcement learning
  • mlflow - is a platform to streamline machine learning development, including tracking experiments, packaging code into reproducible runs, and sharing and deploying models

Image Processing

  • image_pipeline - fills the gap between getting raw images from a camera driver and higher-level vision processing
  • gstreamer - is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows
  • ros2_openvino_toolkit - provides a ROS-adaptered runtime framework of neural network which quickly deploys applications and solutions for vision inference
  • vision_visp - Wraps the ViSP moving edge tracker provided by the ViSP visual servoing library into a ROS package
  • apriltag_ros - A ROS wrapper of the AprilTag 3 visual fiducial detector
  • deep_object_pose - Deep Object Pose Estimation
  • DetectAndTrack - Detect-and-Track: Efficient Pose
  • SfMLearner - An unsupervised learning framework for depth and ego-motion estimation
  • imgaug - Image augmentation for machine learning experiments
  • vision_opencv - Packages for interfacing ROS with OpenCV, a library of programming functions for real time computer vision.
  • darknet_ros - YOLO ROS: Real-Time Object Detection for ROS
  • ros_ncnn - YOLACT / YOLO ( among other things ) on NCNN inference engine for ROS
  • tf-pose-estimation - Deep Pose Estimation implemented using Tensorflow with Custom Architectures for fast inference.
  • find-object - Simple Qt interface to try OpenCV implementations of SIFT, SURF, FAST, BRIEF and other feature detectors and descriptors
  • yolact - A simple, fully convolutional model for real-time instance segmentation.
  • Kimera-Semantics - Real-Time 3D Semantic Reconstruction from 2D data
  • detectron2 - is a next-generation research platform for object detection and segmentation.
  • OpenVX - enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases
  • 3d-vehicle-tracking - Official implementation of Joint Monocular 3D Vehicle Detection and Tracking
  • pysot - The goal of PySOT is to provide a high-quality, high-performance codebase for visual tracking research
  • semantic_slam - Real time semantic slam in ROS with a hand held RGB-D camera
  • kitti_scan_unfolding - We propose KITTI scan unfolding in our paper Scan-based Semantic Segmentation of LiDAR Point Clouds: An Experimental Study.
  • packnet-sfm - Official PyTorch implementation of self-supervised monocular depth estimation methods invented by the ML Team at Toyota Research Institute (TRI)
  • AB3DMOT - This work proposes a simple yet accurate real-time baseline 3D multi-object tracking system
  • lanenet-lane-detection - Unofficial implemention of lanenet model for real time lane detection using deep neural network model
  • OpenDroneMap - An open source command line toolkit for processing aerial drone imagery
  • monoloco - Official implementation of "MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation" in PyTorch
  • Poly-YOLO - builds on the original ideas of YOLOv3 and removes two of its weaknesses: a large amount of rewritten labels and inefficient distribution of anchors
  • satellite-image-deep-learning - Resources for deep learning with satellite & aerial imagery
  • robosat - Semantic segmentation on aerial and satellite imagery
  • big_transfer - Model for General Visual Representation Learning created by Google Research
  • LEDNet - A Lightweight Encoder-Decoder Network for Real-time Semantic Segmentation
  • TorchSeg - This project aims at providing a fast, modular reference implementation for semantic segmentation models using PyTorch.
  • simpledet - A Simple and Versatile Framework for Object Detection and Instance Recognition
  • meshroom - Meshroom is a free, open-source 3D Reconstruction Software based on the AliceVision Photogrammetric Computer Vision framework.
  • EasyOCR - Ready-to-use Optical character recognition (OCR) with 40+ languages supported including Chinese, Japanese, Korean and Thai
  • pytracking - A general python framework for visual object tracking and video object segmentation, based on PyTorch.

Radar Processing

  • pyroSAR - Framework for large-scale SAR satellite data processing
  • CameraRadarFusionNet - TUM Roborace Team Software Stack - Path tracking control, velocity control, curvature control and state estimation.

Lidar and Point Cloud Processing

  • cilantro - A lean C++ library for working with point cloud data
  • open3d - Open3D: A Modern Library for 3D Data Processing
  • SqueezeSeg - Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation
  • point_cloud_io - ROS nodes to read and write point clouds from and to files (e.g. ply, vtk).
  • python-pcl - Python bindings to the pointcloud library
  • libpointmatcher - An "Iterative Closest Point" library for 2-D/3-D mapping in Robotics
  • depth_clustering - Fast and robust clustering of point clouds generated with a Velodyne sensor.
  • lidar-bonnetal - Semantic and Instance Segmentation of LiDAR point clouds for autonomous driving
  • CSF - LiDAR point cloud ground filtering / segmentation (bare earth extraction) method based on cloth simulation
  • robot_body_filter - A highly configurable LaserScan/PointCloud2 filter that allows to dynamically remove the 3D body of the robot from the measurements.
  • grid_map - Universal grid map library for mobile robotic mapping
  • elevation_mapping - Robot-centric elevation mapping for rough terrain navigation
  • rangenet_lib - contains simple usage explanations of how the RangeNet++ inference works with the TensorRT and C++ interface.
  • pointcloud_to_laserscan - Converts a 3D Point Cloud into a 2D laser scan.
  • octomap - An Efficient Probabilistic 3D Mapping Framework Based on Octrees
  • pptk - Point Processing Toolkit from HEREMaps
  • gpu-voxels - GPU-Voxels is a CUDA based library which allows high resolution volumetric collision detection between animated 3D models and live pointclouds from 3D sensors of all kinds.
  • spatio_temporal_voxel_layer - A new voxel layer leveraging modern 3D graphics tools to modernize navigation environmental representations
  • LAStools - award-winning software for efficient LiDAR processing
  • PCDet - is a general PyTorch-based codebase for 3D object detection from point cloud.
  • PDAL - is a C++ BSD library for translating and manipulating point cloud data
  • PotreeConverter - Builds a potree octree from las, laz, binary ply, xyz or ptx files.
  • fast_gicp - A collection of GICP-based fast point cloud registration algorithms
  • ndt_omp - Multi-threaded and SSE friendly NDT algorithm
  • spatio_temporal_voxel_layer - voxel layer leveraging modern 3D graphics tools to modernize navigation environmental representations
  • laser_line_extraction - A ROS packages that extracts line segments from LaserScan messages.
  • Go-ICP - Implementation of the Go-ICP algorithm for globally optimal 3D pointset registration
  • PointCNN - is a simple and general framework for feature learning from point clouds
  • segmenters_lib - The LiDAR segmenters library, for segmentation-based detection
  • MotionNet - Joint Perception and Motion Prediction for Autonomous Driving Based on Bird's Eye View Maps
  • PolarSeg - An Improved Grid Representation for Online LiDAR Point Clouds Semantic Segmentation
  • traversability_mapping - takes in point cloud from a Velodyne VLP-16 Lidar and outputs a traversability map for autonomous navigation in real-time
  • lidar_super_resolution - Simulation-based Lidar Super-resolution for Ground Vehicles
  • cupoch - Cupoch is a library that implements rapid 3D data processing and robotics computation using CUDA
  • linefit_ground_segmentation - Implementation of the ground segmentation algorithm
  • draco - Draco is a library for compressing and decompressing 3D geometric meshes and point clouds
  • votenet - Deep Hough Voting for 3D Object Detection in Point Clouds
  • lidar_undistortion - provides lidar motion undistortion based on an external 6DoF pose estimation input.
  • superpoint_graph - Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs
  • RandLA-Net - Efficient Semantic Segmentation of Large-Scale Point Clouds
  • Det3D - Det3D is the first 3D Object Detection toolbox which provides off the box implementations of many 3D object detection algorithms such as PointPillars, SECOND, PIXOR
  • OverlapNet - OverlapNet is modified Siamese Network that predicts the overlap and relative yaw angle of a pair of range images generated by 3D LiDAR scans
  • mp2p_icp - A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++
  • OpenPCDet - OpenPCDet Toolbox for LiDAR-based 3D Object Detection

Localization and State Estimation

  • evo - Python package for the evaluation of odometry and SLAM
  • robot_localization - is a package of nonlinear state estimation nodes
  • fuse - General architecture for performing sensor fusion live on a robot.
  • GeographicLib - A C++ library for geographic projections.
  • ntripbrowser - A Python API for browsing NTRIP (Networked Transport of RTCM via Internet Protocol).
  • imu_tools - IMU-related filters and visualizers.
  • RTKLIB - A version of RTKLIB optimized for single and dual frequency low cost GPS receivers, especially u-blox receivers
  • gLAB - performs precise modeling of GNSS observables (pseudorange and carrier phase) at the centimetre level, allowing standalone GPS positioning, PPP, SBAS and DGNSS
  • ai-imu-dr - contains the code of our novel accurate method for dead reckoning of wheeled vehicles based only on an IMU
  • Kalman-and-Bayesian-Filters-in-Python - Kalman Filter book using Jupyter Notebook
  • mcl_3dl - A ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s)
  • se2lam - On-SE(2) Localization and Mapping for Ground Vehicles by Fusing Odometry and Vision
  • mmWave-localization-learning - ML-based positioning method from mmWave transmissions - with high accuracy and energy efficiency
  • python-sgp4 - computes the position and velocity of an earth-orbiting satellite, given the satellite’s TLE orbital elements from a source like Celestrak.
  • dynamic_robot_localization - is a ROS package that offers 3 DoF and 6 DoF localization using PCL and allows dynamic map update using OctoMap
  • eagleye - is an open-source software for vehicle localization utilizing GNSS and IMU

Simultaneous Localization and Mapping

Lidar

  • loam_velodyne - Laser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar.
  • lio-mapping - Implementation of Tightly Coupled 3D Lidar Inertial Odometry and Mapping (LIO-mapping)
  • A-LOAM - Advanced implementation of LOAM
  • floam - Fast LOAM: Fast and Optimized Lidar Odometry And Mapping
  • cartographer_ros - Provides ROS integration for Cartographer
  • loam_livox - A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR
  • StaticMapping - Use LiDAR to map the static world
  • semantic_suma - Semantic Mapping using Surfel Mapping and Semantic Segmentation
  • slam_toolbox - Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS
  • maplab - An open visual-inertial mapping framework.
  • hdl_graph_slam - is an open source ROS package for real-time 6DOF SLAM using a 3D LIDAR
  • interactive_slam - In contrast to existing automatic SLAM packages, we with minimal human effort.
  • LeGO-LOAM - Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
  • pyslam - contains a monocular Visual Odometry (VO) pipeline in Python
  • PointCNN - is a simple and general framework for feature learning from point cloud, which refreshed five benchmark records in point cloud processing
  • Kitware SLAM - LiDAR-only visual SLAM developped by Kitware, as well as ROS and ParaView wrappings for easier use.
  • horizon_highway_slam - horizon_highway_slam is a robust, low drift, and real time highway SLAM package suitable for Livox Horizon lidar
  • mola - is a Modular System for Localization and Mapping

Visual

  • orb_slam_2_ros - A ROS implementation of ORB_SLAM2
  • orbslam-map-saving-extension - In this extensions the map of ORB-features be saved to the disk as a reference for future runs along the same track
  • dso - Direct Sparse Odometry
  • viso2 - A ROS wrapper for libviso2, a library for visual odometry
  • xivo - X Inertial-aided Visual Odometry
  • rovio - Robust Visual Inertial Odometry Framework
  • MIT Kimera-Semantics - C++ library for real-time metric-semantic visual-inertial Simultaneous Localization And Mapping (SLAM)
  • LSD-SLAM - LSD-SLAM: Large-Scale Direct Monocular SLAM is a real-time monocular SLAM
  • CubeSLAM and ORB SLAM - Monocular 3D Object Detection and SLAM Package of CubeSLAM and ORB SLAM
  • VINS-Fusion - A Robust and Versatile Multi-Sensor Visual-Inertial State Estimator
  • openvslam - OpenVSLAM: A Versatile Visual SLAM Framework
  • basalt - Visual-Inertial Mapping with Non-Linear Factor Recovery
  • Kimera - is a C++ library for real-time metric-semantic simultaneous localization and mapping, which uses camera images and inertial data to build a semantically annotated 3D mesh of the environment
  • tagslam - is a ROS-based package for Simultaneous Localization and Mapping using AprilTag fiducial markers
  • LARVIO - A lightweight, accurate and robust monocular visual inertial odometry based on Multi-State Constraint Kalman Filter.
  • fiducials - Simultaneous localization and mapping using fiducial markers.

Vector Map

  • OpenDRIVE - OpenDRIVE® is an open file format for the logical description of road networks
  • MapsModelsImporter - A Blender add-on to import models from google maps
  • Lanelet2 - Map handling framework for automated driving
  • barefoot - Online and Offline map matching that can be used stand-alone and in the cloud
  • iD - The easy-to-use OpenStreetMap editor in JavaScript
  • RapiD - an enhanced version of iD for mapping with AI created by Facebook
  • segmap - A map representation based on 3D segments
  • Mapbox - is a JavaScript library for interactive, customizable vector maps on the web
  • osrm-backend - Open Source Routing Machine - C++ backend
  • robosat - Semantic segmentation on aerial and satellite imagery. Extracts features such as: buildings, parking lots, roads, water, clouds
  • assuremapingtools - Desktop based tool for viewing, editing and saving road network maps for autonomous vehicle platforms such as Autoware.
  • geopandas - is a project to add support for geographic data to pandas objects.
  • MapToolbox - Plugins to make Autoware vector maps in Unity
  • imagery-index - An index of aerial and satellite imagery useful for mapping
  • mapillary_tools - is a library for processing and uploading images to Mapillary.

Prediction

Behavior and Decision

  • Groot - Graphical Editor to create BehaviorTrees. Compliant with BehaviorTree.CPP
  • BehaviorTree.CPP - Behavior Trees Library in C++
  • RAFCON - Uses hierarchical state machines, featuring concurrent state execution, to represent robot programs
  • ROSPlan - Generic framework for task planning in a ROS system
  • ad-rss-lib - Library implementing the Responsibility Sensitive Safety model (RSS) for Autonomous Vehicles
  • FlexBE - Graphical editor for hierarchical state machines, based on ROS's smach.
  • sts_bt_library - This library provides the functionality to set up your own behavior tree logic by using the defined tree structures like Fallback, Sequence or Parallel Nodes
  • SMACC - An Event-Driven, Asynchronous, Behavioral State Machine Library for real-time ROS (Robotic Operating System) applications written in C++
  • py_trees_ros - Behaviours, trees and utilities that extend py_trees for use with ROS.

Planning and Control

  • pacmod - is designed to allow the user to control a vehicle with the PACMod drive-by-wire system.
  • mpcc - Model Predictive Contouring Controller for Autonomous Racing
  • 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
  • open_street_map - ROS packages for working with Open Street Map geographic information.
  • Open Source Car Control - is an assemblage of software and hardware designs that enable computer control of modern cars in order to facilitate the development of autonomous vehicle technology
  • 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 - is 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 - is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs
  • ACADO Toolkit - is a software environment and algorithm collection for automatic control and dynamic optimization
  • control-toolbox - an efficient C++ library for control, estimation, optimization and motion planning in robotics
  • 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
  • control-toolbox - an efficient C++ library for control, estimation, optimization and motion planning in robotics.
  • rmf_core - The rmf_core packages provide the centralized functions of the Robotics Middleware Framework (RMF)
  • OpEn - is a solver for Fast & Accurate Embedded Optimization for next-generation Robotics and Autonomous Systems
  • 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
  • global_racetrajectory_optimization - This repository contains multiple approaches for generating global racetrajectories.

User Interaction

Graphical User Interface

  • imgui - is designed to enable fast iterations and to empower programmers to create content creation tools and visualization / debug tools
  • qtpy - Provides an uniform layer to support PyQt5, PySide2, PyQt4 and PySide with a single codebase
  • mir - Mir is set of libraries for building Wayland based shells
  • rqt - rqt is a Qt-based framework for GUI development for ROS. It consists of three parts/metapackages
  • cage - This is Cage, a Wayland kiosk. A kiosk runs a single, maximized application.
  • chilipie - Easy-to-use Raspberry Pi image for booting directly into full-screen Chrome
  • pencil - A tool for making diagrams and GUI prototyping that everyone can use.
  • dynamic_reconfigure - The focus of dynamic_reconfigure is on providing a standard way to expose a subset of a node's parameters to external reconfiguration
  • ddynamic_reconfigure - allows modifying parameters of a ROS node using the dynamic_reconfigure framework without having to write cfg files
  • elements - is a lightweight, fine-grained, resolution independent, modular GUI library

Acoustic User Interface

  • pyo - is a Python module written in C containing classes for a wide variety of audio signal processing types
  • rhasspy - Rhasspy (pronounced RAH-SPEE) is an offline, multilingual voice assistant toolkit inspired by Jasper that works well with Home Assistant, Hass.io, and Node-RED
  • mycroft-core - Mycroft is a hackable open source voice assistant

Command Line Interface

  • the-art-of-command-line - Master the command line, in one page
  • dotfiles of cornerman - Powerful zsh and vim dotfiles
  • dotbot - A tool that bootstraps your dotfiles
  • prompt-hjem - A beautiful zsh prompt
  • ag - A code-searching tool similar to ack, but faster.
  • fzf - A command-line fuzzy finder
  • pkgtop - Interactive package manager and resource monitor designed for the GNU/Linux.
  • asciimatics - A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations
  • gocui - Minimalist Go package aimed at creating Console User Interfaces.
  • TerminalImageViewer- Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters
  • rosshow - Visualize ROS topics inside a terminal with Unicode/ASCII art
  • python-prompt-toolkit - Library for building powerful interactive command line applications in Python
  • bash-script-template - A best practices Bash script template with several useful functions
  • guake - Drop-down terminal for GNOME
  • wemux - Multi-User Tmux Made Easy
  • tmuxp - tmux session manager built on libtmux
  • mapscii - World map renderer for your console
  • terminator - The goal of this project is to produce a useful tool for arranging terminals
  • bat - A cat(1) clone with wings.
  • fx - Command-line tool and terminal JSON viewer

Data Visualization and Mission Control

  • xdot - Interactive viewer for graphs written in Graphviz's dot language
  • guacamole - clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH
  • ros3djs - 3D Visualization Library for use with the ROS JavaScript Libraries
  • webviz - web-based visualization libraries like rviz
  • plotly.py - An open-source, interactive graphing library for Python
  • PlotJuggler - The timeseries visualization tool that you deserve
  • bokeh - Interactive Data Visualization in the browser, from Python
  • voila - From Jupyter notebooks to standalone web applications and dashboards
  • Pangolin - Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.
  • rqt_bag - provides a GUI plugin for displaying and replaying ROS bag files.
  • kepler.gl - Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.
  • qgis_ros - Access bagged and live topic data in a highly featured GIS environment
  • openmct - A web based mission control framework
  • web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats
  • rvizweb - RVizWeb provides a convenient way of building and launching a web application with features similar to RViz
  • marvros - MAVLink to ROS gateway with proxy for Ground Control Station
  • octave - provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.
  • streetscape.gl - Streetscape.gl is a toolkit for visualizing autonomous and robotics data in the XVIZ protocol.
  • urdf-loaders - URDF Loaders for Unity and THREE.js with example ATHLETE URDF File

Annotation

  • labelbox - is the fastest way to annotate data to build and ship artificial intelligence applications
  • PixelAnnotationTool - Annotate quickly images
  • LabelImg - LabelImg is a graphical image annotation tool and label object bounding boxes in images
  • cvat - Powerful and efficient Computer Vision Annotation Tool (CVAT)
  • point_labeler - Tool for labeling of a single point clouds or a stream of point clouds
  • label-studio - Label Studio is a multi-type data labeling and annotation tool with standardized output format
  • napari - a fast, interactive, multi-dimensional image viewer for python
  • semantic-segmentation-editor - A web based labeling tool for creating AI training data sets (2D and 3D)

Point Cloud

  • CloudCompare - CloudCompare is a 3D point cloud (and triangular mesh) processing software.
  • Potree - WebGL point cloud viewer for large datasets
  • point_cloud_viewer - makes viewing massive point clouds easy and convenient
  • ParaView - VTK-based Data Analysis and Visualization Application
  • entwine - is a data organization library for massive point clouds, designed to conquer datasets of trillions of points as well as desktop-scale point clouds.
  • polyscope - A C++ & Python viewer for 3D data like meshes and point clouds

RViz

  • mapviz - Modular ROS visualization tool for 2D data.
  • rviz_cinematographer - Easy to use tools to create and edit trajectories for the rviz camera.
  • rviz_satellite - Display internet satellite imagery in RViz
  • rviz_visual_tools - C++ API wrapper for displaying shapes and meshes in Rviz
  • xpp - visualization of motion-plans for legged robots
  • rviz stereo - 3D stereo rendering displays a different view to each eye so that the scene appears to have depth
  • jsk_visualization - jsk visualization ros packages for rviz and rqt

Operation System

Monitoring

  • lnav - is an enhanced log file viewer that takes advantage of any semantic information that can be gleaned from the files being viewed, such as timestamps and log levels
  • htop - htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
  • atop - System and process monitor for Linux with logging and replay function
  • psutil - Cross-platform lib for process and system monitoring in Python
  • gputil - A Python module for getting the GPU status from NVIDA GPUs using nvidia-smi programmically in Python
  • gpustat - A simple command-line utility for querying and monitoring GPU status
  • nvtop - NVIDIA GPUs htop like monitoring tool
  • spdlog - Very fast, header-only/compiled, C++ logging library
  • ctop - Top-like interface for container metrics
  • ntop - Web-based Traffic and Security Network Traffic Monitoring
  • jupyterlab-nvdashboard - A JupyterLab extension for displaying dashboards of GPU usage

Database and Record

  • ncdu - Ncdu is a disk usage analyzer with an ncurses interface
  • borg - Deduplicating archiver with compression and authenticated encryption
  • bag-database - A server that catalogs bag files and provides a web-based UI for accessing them
  • marv-robotics - MARV Robotics is a powerful and extensible data management platform
  • kitti2bag - Convert KITTI dataset to ROS bag file the easy way!
  • pykitti - Python tools for working with KITTI data
  • rosbag_editor - Create a rosbag from a given one, using a simple GUI
  • nextcloud - Nextcloud is a suite of client-server software for creating and using file hosting services.
  • ros_type_introspection - Deserialize ROS messages that are unknown at compilation time
  • syncthing - is a continuous file synchronization program
  • rqt_bag_exporter - Qt GUI to export ROS bag topics to files (CSV and/or video)
  • xviz - A protocol for real-time transfer and visualization of autonomy data
  • kitti_to_rosbag - dataset tools for working with the KITTI dataset raw data and converting it to a ROS bag. Also allows a library for direct access to poses, velodyne scans, and images.
  • ros_numpy - Tools for converting ROS messages to and from numpy arrays
  • kitti_ros - A ROS-based player to replay KiTTI dataset
  • duckdb - DuckDB is an embeddable SQL OLAP Database Management System

Network Distributed File System

  • sshfs - File system based on the SSH File Transfer Protocol
  • moosefs - a scalable distributed storage system
  • ceph - is a distributed object, block, and file storage platform
  • nfs - is a distributed file system protocol originally developed by Sun Microsystems

Server Infrastructure and High Performance Computing

  • mass - Self-service, remote installation of Windows, CentOS, ESXi and Ubuntu on real servers turns your data centre into a bare metal cloud.
  • polyaxon - A platform for reproducing and managing the whole life cycle of machine learning and deep learning applications.
  • localstack - A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline
  • nvidia-docker - Build and run Docker containers leveraging NVIDIA GPUs
  • kubeflow - Machine Learning Toolkit for Kubernetes
  • log-pilot - Collect logs for docker containers
  • traefik - The Cloud Native Edge Router
  • graylog2-server - Free and open source log management
  • ansible - Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy
  • pyinfra - It can be used for ad-hoc command execution, service deployment, configuration management and more
  • docker-py - A Python library for the Docker Engine API
  • noVNC - VNC client using HTML5
  • Slurm - Slurm: A Highly Scalable Workload Manager
  • jupyterhub - Multi-user server for Jupyter notebooks
  • Portainer - Making Docker management easy
  • enroot - A simple, yet powerful tool to turn traditional container/OS images into unprivileged sandboxes.
  • docker-firefox - Run a Docker Container with Firefox and noVNC for remote access to headless servers
  • luigi - is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built in.

Embedded Operation System

  • vxworks7-ros2-build - Build system to automate the build of VxWorks 7 and ROS2
  • Yocto - Produce tools and processes that enable the creation of Linux distributions for embedded software that are independent of the underlying architecture of the embedded hardware
  • Automotive Graded Linux - is a collaborative open source project that is bringing together automakers, suppliers and technology companies to build a Linux-based, open software platform for automotive applications that can serve as the de facto industry standard
  • ROSBerryPI - Installing ROS Kinetic on the Raspberry Pi
  • bitbake - is a generic task execution engine that allows shell and Python tasks to be run efficiently and in parallel while working within complex inter-task dependency constraints.
  • Jailhouse - Jailhouse is a partitioning Hypervisor based on Linux
  • Xen - is an open-source (GPL) type-1 or baremetal hypervisor
  • QEMU - is a generic and open source machine emulator and virtualizer
  • qemu-xilinx - A fork of Quick EMUlator (QEMU) with improved support and modelling for the Xilinx platforms
  • rosserial - A ROS client library for small, embedded devices, such as Arduino
  • meta-ros - OpenEmbedded Layer for ROS Applications
  • meta-balena - Run Docker containers on embedded devices
  • micro-ros - The major changes compared to "regular" ROS 2 is that micro-ROS uses a Real-Time Operating System (RTOS) instead of Linux, and DDS for eXtremely Resource Constrained Environments
  • nvidia-container-runtime - NVIDIA Container Runtime is a GPU aware container runtime, compatible with the Open Containers Initiative (OCI) specification used by Docker, CRI-O, and other popular container technologie
  • fusesoc - Package manager and build abstraction tool for FPGA/ASIC development
  • jetson_easy - Automatically script to setup and configure your NVIDIA Jetson
  • docker-jetpack-sdk - allows for usage of the NVIDIA JetPack SDK within a docker container for download, flashing, and install
  • Pressed - provides a way to set answers to questions asked during the installation process of debian, without having to manually enter the answers while the installation is running
  • jetson_stats - is a package to monitoring and control your NVIDIA Jetson [Xavier NX, Nano, AGX Xavier, TX1, TX2] Works with all NVIDIA Jetson ecosystem.

Real-Time Kernel

  • ELISA - Project is to make it easier for companies to build and certify Linux-based safety-critical applications – systems whose failure could result in loss of human life, significant property damage or environmental damage
  • PREEMPT_RT kernel patch - Aim of the PREEMPT_RT kernel patch is to minimize the amount of kernel code that is non-preemptible

Network and Middleware

  • performance_test - Tool to test the performance of pub/sub based communication frameworks.
  • realtime_support - Minimal real-time testing utility for measuring jitter and latency.
  • ros1_bridge - ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2
  • Fast-RTPS - protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium
  • protobuf - Google's data interchange format
  • opensplice - Vortex OpenSplice Community Edition
  • cyclonedds - Eclipse Cyclone DDS is a very performant and robust open-source DDS implementation
  • iceoryx - an IPC middleware for POSIX-based systems
  • rosbridge_suite - provides a JSON interface to ROS, allowing any client to send JSON to publish or subscribe to ROS topics, call ROS services, and more
  • ros2arduino - This library helps the Arduino board communicate with the ROS2 using XRCE-DDS.

Ethernet and Wireless Networking

  • SOES - SOES is an EtherCAT slave stack written in c
  • netplan - simply create a YAML description of the required network interfaces and what each should be configured to do
  • airalab - AIRA is reference Robonomics network client for ROS-enabled cyber-physical systems.
  • rdbox - RDBOX is a IT infrastructure for ROS robots
  • ros_ethercat - This is a reimplementation of the main loop of pr2_ethercat without dependencies on PR2 software
  • wavemon - is an ncurses-based monitoring application for wireless network devices
  • wireless - Making info about wireless networks available to ROS.
  • ptpd - PTP daemon (PTPd) is an implementation the Precision Time Protocol (PTP) version 2 as defined by 'IEEE Std 1588-2008'. PTP provides precise time coordination of Ethernet LAN connected computers
  • iperf - A TCP, UDP, and SCTP network bandwidth measurement tool
  • tcpreplay - Pcap editing and replay tools
  • nethogs - It groups bandwidth by process
  • pyshark - Python wrapper for tshark, allowing python packet parsing using wireshark dissectors
  • pingtop - Ping multiple servers and show results in a top-like terminal UI
  • termshark - A terminal UI for tshark, inspired by Wireshark
  • udpreplay - Replay UDP packets from a pcap file

Controller Area Network

  • AndrOBD - Android OBD diagnostics with any ELM327 adapter
  • ddt4all - DDT4All is a tool to create your own ECU parameters screens and connect to a CAN network with a cheap ELM327 interface
  • cabana - CAN visualizer and DBC maker
  • opendbc - The project to democratize access to the decoder ring of your car.
  • libuavcan - is an open lightweight protocol designed for reliable communication in aerospace and robotic applications over robust vehicular networks such as CAN bus.
  • python-can - The can package provides controller area network support for Python developers
  • CANopenNode - is the internationally standardized (EN 50325-4) (CiA301) CAN-based higher-layer protocol for embedded control system.
  • python-udsoncan - Python implementation of UDS (ISO-14229) standard
  • uds-c - Unified Diagnostics Service (UDS) and OBD-II (On Board Diagnostics for Vehicles) C Library
  • autosar - A set of python modules for working with AUTOSAR XML files
  • cantools - CAN BUS tools in Python 3
  • CANdevStudio - CANdevStudio aims to be cost-effective replacement for CAN simulation software. It can work with variety of CAN hardware interfaces
  • can-utils - Linux-CAN / SocketCAN user space applications
  • ros_canopen - CANopen driver framework for ROS
  • decanstructor - The definitive ROS CAN analysis tool
  • kvaser_interface - This package was developed as a standardized way to access Kvaser CAN devices from ROS
  • canmatrix - Converting CAN Database Formats .arxml .dbc .dbf .kcd

Sensor and Acuator Interfaces

  • Tesla-API - provides functionality to monitor and control the Model S (and future Tesla vehicles) remotely
  • flirpy - is a Python library to interact with FLIR thermal imaging cameras and images.
  • nerian_stereo - ROS node for Nerian's SceneScan and SP1 stereo vision sensors
  • pymmw - This is a toolbox composed of Python scripts to interact with TI's evaluation module (BoosterPack) for the IWR1443 mmWave sensing device
  • ti_mmwave_rospkg - TI mmWave radar ROS driver (with sensor fusion and hybrid
  • pacmod3 - This ROS node is designed to allow the user to control a vehicle with the PACMod drive-by-wire system, board revision 3.
  • ros2_intel_realsense - These are packages for using Intel RealSense cameras (D400 series) with ROS2.
  • sick_scan - This stack provides a ROS2 driver for the SICK TiM series of laser scanners.
  • ouster_example - Sample code for connecting to and configuring the OS1, reading and visualizing data, and interfacing with ROS.
  • livox_ros_driver - is a new ROS package, specially used to connect LiDAR products produced by Livox
  • velodyne - is a collection of ROS2 packages supporting Velodyne high definition 3D LIDARs
  • ublox - provides support for u-blox GPS receivers.
  • crazyflie_ros - ROS Driver for Bitcraze Crazyflie
  • pointgrey_camera_driver - ROS driver for Pt. Grey cameras, based on the official FlyCapture2 SDK
  • novatel_gps_driver - ROS driver for NovAtel GPS / GNSS receivers
  • pylon-ros-camera - The official pylon ROS driver for Basler GigE Vision and USB3 Vision cameras:
  • ethz_piksi_ros - contains (python) ROS drivers, tools, launch files, and wikis about how to use Piksi Real Time Kinematic (RTK) GPS device in ROS
  • sick_safetyscanners - A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.
  • bosch_imu_driver - A driver for the sensor IMU Bosch BNO055. It was implemented only the UART communication interface (correct sensor mode should be selected).
  • oxford_gps_eth - Ethernet interface to OxTS GPS receivers using the NCOM packet structure

Security

  • launch_ros_sandbox - can define launch files running nodes in restrained environments, such as Docker containers or separate user accounts with limited privileges
  • wolfssl - is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud
  • CANalyzat0r - Security analysis toolkit for proprietary car protocols
  • RSF - Robot Security Framework (RSF) is a standardized methodology to perform security assessments in robotics
  • How-to-Secure-A-Linux-Server - An evolving how-to guide for securing a Linux server.
  • lynis - Security auditing tool for Linux, macOS, and UNIX-based systems. Assists with compliance testing (HIPAA/ISO27001/PCI DSS) and system hardening
  • OpenVPN - is an open source VPN daemon
  • openfortivpn - openfortivpn is a client for PPP+SSL VPN tunnel services and compatible with Fortinet VPNs
  • WireGuard - WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes state-of-the-art cryptography
  • ssh-auditor - Scans for weak ssh passwords on your network
  • vulscan - Advanced vulnerability scanning with Nmap NSE
  • nmap-vulners - NSE script based on Vulners.com API
  • brutespray - Automatically attempts default creds on found services.
  • fail2ban - Daemon to ban hosts that cause multiple authentication errors
  • DependencyCheck - is a software composition analysis utility that detects publicly disclosed vulnerabilities in application dependencies
  • firejail - Firejail is a SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities
  • RVD - Robot Vulnerability Database. Community-contributed archive of robot vulnerabilities and weaknesses
  • ros2_dds_security - adding security enhancements by defining a Service Plugin Interface (SPI) architecture, a set of builtin implementations of the SPIs, and the security model enforced by the SPIs
  • Security-Enhanced Linux - is a Linux kernel security module that provides a mechanism for supporting access control security policies, including mandatory access controls (MAC)
  • OpenTitan - will make the silicon Root of Trust design and implementation more transparent, trustworthy, and secure for enterprises, platform providers, and chip manufacturers. OpenTitan is administered by lowRISC CIC as a collaborative project to produce high quality, open IP for instantiation as a full-featured product
  • bandit - is a tool designed to find common security issues in Python code.
  • hardening - A quick way to make a Ubuntu server a bit more secure.
  • passbolt_docker - Passbolt is a free and open source password manager that allows team members to store and share credentials securely
  • gopass - is a password manager for the command line written in Go
  • pass - the standard unix password manager
  • vault - Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more
  • legion - is an open source, easy-to-use, super-extensible and semi-automated network penetration testing framework that aids in discovery, reconnaissance and exploitation of information systems

Datasets

  • waymo-open-dataset - The Waymo Open Dataset is comprised of high-resolution sensor data collected by Waymo self-driving cars in a wide variety of conditions.
  • Ford Autonomous Vehicle Dataset - Ford presents a challenging multi-agent seasonal dataset collected by a fleet of Ford autonomous vehicles at different days and times.
  • awesome-robotics-datasets - A collection of useful datasets for robotics and computer vision
  • nuscenes-devkit - The devkit of the nuScenes dataset
  • dataset-api - This is a repo of toolkit for ApolloScape Dataset, CVPR 2019 Workshop on Autonomous Driving Challenge and ECCV 2018 challenge.
  • utbm_robocar_dataset - EU Long-term Dataset with Multiple Sensors for Autonomous Driving
  • DBNet - DBNet: A Large-Scale Dataset for Driving Behavior Learning
  • argoverse-api - Official GitHub repository for Argoverse dataset
  • DDAD - is a new autonomous driving benchmark from TRI (Toyota Research Institute) for long range (up to 250m) and dense depth estimation in challenging and diverse urban conditions
  • pandaset-devkit - Public large-scale dataset for autonomous driving provided by Hesai & Scale
  • a2d2_to_ros - Utilities for converting A2D2 data sets to ROS bags.
  • argoverse-api - Official GitHub repository for Argoverse dataset
  • awesome-satellite-imagery-datasets - List of satellite image training datasets with annotations for computer vision and deep learning
  • sentinelsat - Search and download Copernicus Sentinel satellite images
  • adas-dataset-form - Thermal Dataset for Algorithm Training
  • h3d - The H3D is a large scale full-surround 3D multi-object detection and tracking dataset from Honda
  • Mapillary Vistas Dataset - A diverse street-level imagery dataset with pixel‑accurate and instance‑specific human annotations for understanding street scenes around the world.
  • TensorFlow Datasets - TensorFlow Datasets provides many public datasets as tf.data.Datasets
  • racetrack-database - contains center lines (x- and y-coordinates), track widths and race lines for over 20 race tracks (mainly F1 and DTM) all over the world
  • BlenderProc - A procedural Blender pipeline for photorealistic training image generation