A curated list of tooling for professional robotic development in C++
and Python with a touch of ROS, autonomous driving and aerospace
To stop reinventing the wheel you need to know about the wheel. This
list is an attempt to show the variety of open and free tools in
software and hardware development, which are useful in professional
robotic development.
Your contribution is necessary to keep this list alive, increase the
quality and to expand it. You can read more about it’s origin and how you
can participate in the
contribution guide and related
blog post. All new project entries will have a tweet from
protontypes.
Contents
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 - A modern, open
source helpdesk customer support application.
-
ONLYOFFICE -
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 - 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
- An open source, private cloud, Slack-alternative.
-
openproject - The
leading open source project management software.
-
leantime - Leantime
is a lean project management system for innovators.
-
gitter -
Gitter is a chat and networking platform that helps to manage, grow and
connect communities through messaging, content and discovery.
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 - 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 - 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 - 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.
-
CodiMD - Open Source
Online Real-time collaborate on team documentation in markdown.
-
jupyter-book
- Build interactive, publication-quality documents from Jupyter
Notebooks.
-
InvoiceNet - Deep
neural network to extract intelligent information from invoice
documents.
-
tesseract -
Open Source OCR Engine.
-
mkdocs - A fast, simple
and downright gorgeous static site generator that’s geared towards
building project documentation.
-
PlotNeuralNet
- Latex code for drawing neural networks for reports and presentation.
-
Excalidraw -
Virtual whiteboard for sketching hand-drawn like diagrams.
-
SVGrepo - Download free SVG
Vectors for commercial use.
-
gollum - A simple,
Git-powered wiki with a sweet API and local frontend.
-
GanttLab - The easy
to use, fully functional Gantt chart for GitLab and GitHub.
-
Zotero - A free,
easy-to-use tool to help you collect, organize, cite, and share your
research sources.
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.
-
doorstop -
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
- A 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
- How to architect ROS-based systems.
-
yEd - 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 - 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 - A 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.
-
Architecture_Decision_Record
- A document that captures an important architectural decision made
along with its context and consequences.
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 - An open source
flight control software for drones and other unmanned vehicles.
-
KubOS - 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.
-
open-source-rover
- A build-it-yourself, 6-wheel rover based on the rovers on Mars from
JPL.
-
pybotics - An
open-source and peer-reviewed Python toolbox for robot kinematics and
calibration.
-
makani - Contains the
working Makani flight simulator, controller (autopilot), visualizer, and
command center flight monitoring tools.
-
mir_robot - This is
a community project to use the MiR Robots with ROS.
-
COMPAS - Robotic
fabrication package for the COMPAS Framework.
-
JdeRobot Academy
- JdeRobot Academy is an open source collection of exercises to learn
robotics in a practical way.
-
clover - ROS-based
framework and RPi image to control PX4-powered drones.
-
ArduPilot - Open
source control software for autonomous vehicles -
copters/planes/rovers/boats/submersibles.
-
F Prime - A
component-driven framework that enables rapid development and deployment
of spaceflight and other embedded software applications.
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.
-
vscode-ros - Visual
Studio Code extension for Robot Operating System (ROS) development.
-
awesome-hpp - A
curated list of awesome header-only C++ libraries.
-
Gitpod - An open
source developer platform that automates the provisioning of
ready-to-code development environments.
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.
-
VS Code ROS2 Workspace Template
- Template for using VSCode as an IDE for ROS2 development.
Build and Deploy
-
qemu-user-static
- 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 - 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.
-
cros - A single
thread pure C implementation of the ROS framework.
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.
-
action-ros-ci
- GitHub Action to build and test ROS 2 packages using colcon.
-
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 - 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 - A static
analysis tool for checking compliance with Python docstring conventions.
-
haros - Static
analysis of ROS application code.
-
pydantic - Data
parsing and validation using Python type hints.
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 - 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.
-
pudb - Full-screen console
debugger for Python.
-
backward-cpp - A
beautiful stack trace pretty printer for C++.
-
gdb-dashboard -
GDB dashboard is a standalone .gdbinit file written using the Python API
that enables a modular interface showing relevant information about the
program being debugged.
-
hotspot - The Linux perf
GUI for performance analysis.
-
memory_profiler
- A python module for monitoring memory consumption of a process as well
as line-by-line analysis of memory consumption for python programs.
-
ros1_fuzzer -
This fuzzer aims to help developers and researchers to find bugs and
vulnerabilities in ROS nodes by performing fuzz tests over topics that
the target nodes process.
-
vscode-debug-visualizer
- An extension for VS Code that visualizes data during debugging.
-
action-tmate -
Debug your GitHub Actions via SSH by using tmate to get access to the
runner system itself.
-
libstatistics_collector
- ROS 2 library providing classes to collect measurements and calculate
statistics across them.
-
system_metrics_collector
- Lightweight, real-time system metrics collector for ROS2 systems.
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 - A graphical user
interface for git.
-
git-cola - The highly
caffeinated Git GUI.
-
python-gitlab
- 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
- A git repository visualizer, sandbox, and a series of educational
tutorials and challenges.
-
gitfs - You can mount a
remote repository’s branch locally, and any subsequent changes made to
the files will be automatically committed to the remote.
-
git-secret -
Encrypts files with permitted users’ public keys, allowing users you
trust to access encrypted data using pgp and their secret keys.
-
git-sweep - A
command-line tool that helps you clean up Git branches that have been
merged into master.
-
lazygit - A
simple terminal UI for git commands, written in Go with the gocui
library.
-
glab - An open-source
GitLab command line tool.
Simulation
-
AI2-THOR - Python
framework with a Unity backend providing interaction, navigation, and
manipulation support for household based robotic agents, consisting of
200+ of custom scenes, 1500+ custom annotated objects, and 200+ actions.
-
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.
-
ros-bridge -
ROS bridge for CARLA Simulator.
-
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.
-
gym-pybullet-drones
- PyBullet-based Gym environments for single and multi-agent
reinforcement learning of quadcopter control.
-
safe-control-gym
- PyBullet-based CartPole and Quadrotor environments—with CasADi
symbolic dynamics and constraints—for safe and robust learning-based
control.
-
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 - A basic
OpenSCENARIO player.
-
OpenSceneGraph
- 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 - 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 - 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.
-
gazebo_models - This
repository holds the Gazebo model database.
-
pylot - Autonomous
driving platform running on the CARLA simulator.
-
flightmare -
Flightmare is composed of two main components: a configurable rendering
engine built on Unity and a flexible physics engine for dynamics
simulation.
-
champ - ROS Packages for
CHAMP Quadruped Controller.
-
rex-gym - OpenAI Gym
environments for an open-source quadruped robot (SpotMicro).
-
Trick - Developed at the
NASA Johnson Space Center, is a powerful simulation development
framework that enables users to build applications for all phases of
space vehicle development.
-
usv_sim_lsa
- Unmanned Surface Vehicle simulation on Gazebo with water current and
winds.
-
42 - Simulation for
spacecraft attitude control system analysis and design.
-
Complete_Street_Rule
- A scenario oriented design tool intended to enable users to quickly
create procedurally generated multimodal streets in ArcGIS CityEngine.
-
AutoCore simulation
- Provides test environment for Autoware and still during early
development, contents below may changed during updates.
-
fields-ignition
- Generate random crop fields for Ignition Gazebo.
-
Unity-Robotics-Hub
- Central repository for tools, tutorials, resources, and documentation
for robotic simulation in Unity.
-
BlueSky - The
goal of BlueSky is to provide everybody who wants to visualize, analyze
or simulate air traffic with a tool to do so without any restrictions,
licenses or limitations.
-
Cloe - Empowers developers
of automated-driving software components by providing a unified
interface to closed-loop simulation.
-
Dynamic_logistics_Warehouse
- Gazebo simulation of dynamics environment in warehouses.
-
OpenCDA - A
generalized framework for prototyping full-stack cooperative driving
automation applications under CARLA+SUMO.
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.
-
kicad-3rd-party-tools
- Tools made by others to augment the KiCad PCB EDA suite.
-
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 - A software
for creating solid 3D CAD models.
-
ngspice - A 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 - 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 - A
community supported tool that provides a set of functions and classes
for simulating the performance of photovoltaic energy systems.
-
WireViz - 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.
-
foxBMS - A free, open and
flexible development environment to design battery management systems.
-
cadCAD - A Python
package that assists in the processes of designing, testing and
validating complex systems through simulation, with support for Monte
Carlo methods, A/B testing and parameter sweeping.
-
OpenMDAO - An
open-source framework for efficient multidisciplinary optimization.
-
ODrive - The aim is to
make it possible to use inexpensive brushless motors in high performance
robotics projects.
-
OpenTirePython
- An open-source mathematical tire modelling library.
-
Inkscape Ray Optics
- An extension for Inkscape that makes it easier to draw optical
diagrams.
-
OpenAeroStruct -
A lightweight tool that performs aerostructural optimization using
OpenMDAO.
Sensor Processing
-
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 -
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.
-
lidar_camera_calibration
- Camera LiDAR Calibration using ROS, OpenCV, and PCL.
-
e2calib - Contains code
that implements video reconstruction from event data for calibration.
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
- 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.
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 - A library for deep
learning that focuses on sequence models and reinforcement learning.
-
mlflow - A platform to
streamline machine learning development, including tracking experiments,
packaging code into reproducible runs, and sharing and deploying models.
-
Netron - Visualizer
for neural network, deep learning and machine learning models.
-
MNN - A blazing fast,
lightweight deep learning framework, battle-tested by business-critical
use cases in Alibaba.
-
Tensorforce -
An open-source deep reinforcement learning framework, with an emphasis
on modularized flexible library design and straightforward usability for
applications in research and practice.
-
Dopamine - A research
framework for fast prototyping of reinforcement learning algorithms.
-
catalyst - Was
developed with a focus on reproducibility, fast experimentation and
code/ideas reusing.
-
ray - A fast and simple
framework for building and running distributed applications.
-
tf-agents - A
reliable, scalable and easy to use TensorFlow library for Contextual
Bandits and Reinforcement Learning.
-
ReAgent - An
open source end-to-end platform for applied reinforcement learning (RL)
developed and used at Facebook.
-
Awesome-Mobile-Machine-Learning
- A curated list of awesome mobile machine learning resources for iOS,
Android, and edge devices.
-
cnn-explainer -
Learning Convolutional Neural Networks with Interactive Visualization.
-
modelzoo -
A collection of machine-learned models for use in autonomous driving
applications.
-
nnstreamer-ros
- A set of Gstreamer plugins and ROS examples that allow Gstreamer
developers to adopt neural network models easily and efficiently and
neural network developers to manage neural network pipelines and their
filters easily and efficiently.
Parallel Processing
-
dask - Parallel computing
with task scheduling for Python.
-
cupy - NumPy-like API
accelerated with CUDA.
-
Thrust - A C++ parallel
programming library which resembles the C++ Standard Library.
-
ArrayFire - A
general purpose GPU library.
-
OpenMP - An application
programming interface that supports multi-platform shared memory
multiprocessing programming in C, C++, and Fortran.
-
VexCL - VexCL is a C++
vector expression template library for OpenCL/CUDA/OpenMP.
-
PYNQ - An open-source
project from Xilinx that makes it easy to design embedded systems with
Zynq All Programmable Systems on Chips.
-
numba - NumPy aware dynamic
Python compiler using LLVM.
-
TensorRT - A C++
library for high performance inference on NVIDIA GPUs and deep learning
accelerators.
-
libcudacxx - Provides
a heterogeneous implementation of the C++ Standard Library that can be
used in and between CPU and GPU code.
Image Processing
-
CV-pretrained-model
- A collection of computer vision pre-trained models.
-
image_pipeline
- Fills the gap between getting raw images from a camera driver and
higher-level vision processing.
-
gstreamer - 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
- 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.
-
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.
-
ros_deep_learning
- Deep learning inference nodes for ROS with support for NVIDIA Jetson
TX1/TX2/Xavier and TensorRT.
-
hyperpose -
HyperPose: A Flexible Library for Real-time Human Pose Estimation.
-
fawkes - Privacy
preserving tool against facial recognition systems.
-
anonymizer -
An anonymizer to obfuscate faces and license plates.
-
opendatacam -
Only saves surveyed meta-data, in particular the path an object moved or
number of counted objects at a certain point.
-
Cam2BEV -
TensorFlow Implementation for Computing a Semantically Segmented Bird’s
Eye View (BEV) Image Given the Images of Multiple Vehicle-Mounted
Cameras.
-
flownet2-pytorch
- Pytorch implementation of FlowNet 2.0: Evolution of Optical Flow
Estimation with Deep Networks.
-
Simd - C++ image
processing and machine learning library with using of SIMD: SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and
VSX(Power7), NEON for ARM.
-
AliceVision - A
Photogrammetric Computer Vision Framework which provides a 3D
Reconstruction and Camera Tracking algorithms.
-
satpy - A python library
for reading and manipulating meteorological remote sensing data and
writing it to various image and data file formats.
-
eo-learn - A
collection of open source Python packages that have been developed to
seamlessly access and process spatio-temporal image sequences acquired
by any satellite fleet in a timely and automatic manner.
-
libvips - A fast image
processing library with low memory needs.
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 - A general
PyTorch-based codebase for 3D object detection from point cloud.
-
PDAL - 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.
-
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 - 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 - A library that
implements rapid 3D data processing and robotics computation using CUDA.
-
linefit_ground_segmentation
- Implementation of the ground segmentation algorithm.
-
Draco - 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 - A first 3D
Object Detection toolbox which provides off the box implementations of
many 3D object detection algorithms such as PointPillars, SECOND, PIXOR.
-
OverlapNet - A
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 - A
Toolbox for LiDAR-based 3D Object Detection.
-
torch-points3d
- Pytorch framework for doing deep learning on point clouds.
-
PolyFit -
Polygonal Surface Reconstruction from Point Clouds.
-
mmdetection3d
- Next-generation platform for general 3D object detection.
-
gpd - Takes a point cloud
as input and produces pose estimates of viable grasps as output.
-
SalsaNext -
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for
Autonomous Driving.
-
Super-Fast-Accurate-3D-Object-Detection
- Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point
Clouds (The PyTorch implementation).
-
kaolin - A
PyTorch Library for Accelerating 3D Deep Learning Research.
-
CamVox - A
low-cost SLAM system based on camera and Livox lidar.
-
SA-SSD - Structure
Aware Single-stage 3D Object Detection from Point Cloud.
-
cuda-pcl -
Accelerating Lidar for Robotics with NVIDIA CUDA-based PCL.
Localization and State Estimation
-
evo - Python package
for the evaluation of odometry and SLAM.
-
robot_localization
- 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.
-
dynamic_robot_localization
- A ROS package that offers 3 DoF and 6 DoF localization using PCL and
allows dynamic map update using OctoMap.
-
eagleye - An open-source
software for vehicle localization utilizing GNSS and IMU.
-
python-sgp4
- Python version of the SGP4 satellite position library.
-
PROJ - Cartographic
Projections and Coordinate Transformations Library.
-
rpg_trajectory_evaluation
- Implements common used trajectory evaluation methods for
visual(-inertial) odometry.
-
pymap3d -
Pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef
enu eci.
-
libRSF - A robust
sensor fusion library for online localization.
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.
-
Fast LOAM - Fast and
Optimized Lidar Odometry And Mapping.
-
LIO_SAM -
Tightly-coupled Lidar Inertial Odometry via Smoothing 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 -
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.
-
Kitware SLAM
- LiDAR-only visual SLAM developped by Kitware, as well as ROS and
ParaView wrappings for easier use.
-
horizon_highway_slam
- A robust, low drift, and real time highway SLAM package suitable for
Livox Horizon lidar.
-
mola - A Modular System
for Localization and Mapping.
-
DH3D - Deep Hierarchical
3D Descriptors for Robust Large-Scale 6DOF Relocalization.
-
LaMa - LaMa is a
C++11 software library for robotic localization and mapping.
-
Scan Context -
Global LiDAR descriptor for place recognition and long-term
localization.
-
M-LOAM - Robust Odometry
and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration.
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.
-
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 - 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 - 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.
-
open_vins - An open
source platform for visual-inertial navigation research.
-
ORB_SLAM3 -
ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial
and Multi-Map SLAM.
-
Atlas - End-to-End 3D
Scene Reconstruction from Posed Images.
-
vilib - This library
focuses on the front-end of VIO pipelines with CUDA.
-
hloc - A
modular toolbox for state-of-the-art 6-DoF visual localization. It
implements Hierarchical Localization, leveraging image retrieval and
feature matching, and is fast, accurate, and scalable.
-
ESVO - A
novel pipeline for real-time visual odometry using a stereo event-based
camera.
-
gradslam - An open
source differentiable dense SLAM library for PyTorch.
Vector Map
-
OpenDRIVE - 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 - A
JavaScript library for interactive, customizable vector maps on the web.
-
osrm-backend
- Open Source Routing Machine - C++ backend.
-
assuremapingtools
- Desktop based tool for viewing, editing and saving road network maps
for autonomous vehicle platforms such as Autoware.
-
geopandas - 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
- A library for processing and uploading images to Mapillary.
-
mapnik - Combines
pixel-perfect image output with lightning-fast cartographic algorithms,
and exposes interfaces in C++, Python, and Node.
-
gdal - GDAL is an open
source X/MIT licensed translator library for raster and vector
geospatial data formats.
-
grass - GRASS GIS - free
and open source Geographic Information System (GIS).
-
3d-tiles -
Specification for streaming massive heterogeneous 3D geospatial
datasets.
-
osmnx - Python for street
networks. Retrieve, model, analyze, and visualize street networks and
other spatial data from OpenStreetMap.
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 - 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 -
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
- 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.
-
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.
-
rmf_core - The rmf_core
packages provide the centralized functions of the Robotics Middleware
Framework (RMF).
-
OpEn - 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.
-
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.
-
se2_navigation
- Pure pursuit controller and Reeds-Shepp sampling based planner for
navigation in SE(2) space.
User Interaction
Graphical User Interface
-
imgui - 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 - 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 - A
lightweight, fine-grained, resolution independent, modular GUI library.
-
NanoGUI - A minimalistic
cross-platform widget library for OpenGL 3.x or higher.
Acoustic User Interface
-
pyo - 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.
-
DDSP - A library of
differentiable versions of common DSP functions (such as synthesizers,
waveshapers, and filters).
-
NoiseTorch - Creates a
virtual microphone that suppresses noise, in any application.
-
DeepSpeech - An open
source Speech-To-Text engine, using a model trained by machine learning
techniques based on Baidu’s Deep Speech research paper.
-
waveglow - A Flow-based
Generative Network for Speech Synthesis.
-
TTS - A deep learning
toolkit for Text-to-Speech, battle-tested in research and production.
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.
-
guake - Drop-down terminal
for GNOME.
-
wemux - Multi-User Tmux
Made Easy.
-
tmuxp - A 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.
-
tmate - Instant terminal
sharing.
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 - 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.
-
obs-studio - Free
and open source software for live streaming and screen recording.
-
K3D-tools - Jupyter notebook
extension for 3D visualization.
-
PyQtGraph - Fast
data visualization and GUI tools for scientific / engineering
applications.
-
ipygany - 3-D
Scientific Visualization in the Jupyter Notebook.
-
Foxglove Studio -
Robotics visualization and debugging.
-
ROS-Mobile
- Visualization and controlling application for Android.
Annotation
-
labelbox - The
fastest way to annotate data to build and ship artificial intelligence
applications.
-
PixelAnnotationTool
- Annotate quickly images.
-
LabelImg - 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).
-
3d-bat - 3D Bounding
Box Annotation Tool for Point cloud and Image Labeling.
-
labelme - Image
Polygonal Annotation with Python (polygon, rectangle, circle, line,
point and image-level flag annotation).
-
universal-data-tool
- Collaborate & label any type of data, images, text, or documents,
in an easy web interface or desktop app.
-
BMW-Labeltool-Lite
- Provides you with a easy to use labeling tool for State-of-the-art
Deep Learning training purposes.
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.
-
LidarView - Performs
real-time visualization and easy processing of live captured 3D LiDAR
data from Lidar sensors.
-
VeloView - Performs
real-time visualization of live captured 3D LiDAR data from Velodyne’s
HDL sensors.
-
entwine - 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.
-
Pcx - Point cloud importer
& renderer for Unity.
-
ImmersivePoints
- A web-application for virtual reality devices to explore 3D data in
the most natural way possible.
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.
-
moveit_visual_tools
- Helper functions for displaying and debugging MoveIt! data in Rviz via
published markers.
Operation System
Monitoring
-
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.
-
collectd - A small
daemon which collects system information periodically and provides
mechanisms to store and monitor the values in a variety of ways.
-
lnav - 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 - 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.
-
ShellHub - ShellHub is a modern
SSH server for remotely accessing linux devices via command line (using
any SSH client) or web-based user interface, designed as an alternative
to sshd. Think ShellHub as centralized SSH for the the edge and cloud
computing.
-
Sshwifty - Sshwifty is a
SSH and Telnet connector made for the Web.
-
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 - 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
- A 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 - 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 - A distributed object,
block, and file storage platform.
-
nfs - A distributed
file system protocol originally developed by Sun Microsystems.
-
ansible-role-nfs
- Installs NFS utilities on RedHat/CentOS or Debian/Ubuntu.
-
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 - 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.
-
triton-inference-server
- NVIDIA Triton Inference Server provides a cloud inferencing solution
optimized for NVIDIA GPUs.
-
cudf - Provides a
pandas-like API that will be familiar to data engineers & data
scientists, so they can use it to easily accelerate their workflows
without going into the details of CUDA programming.
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
- 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.
-
bitbake - 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 - An open-source (GPL)
type-1 or baremetal hypervisor.
-
QEMU - 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 - A
package to monitoring and control your NVIDIA Jetson (Xavier NX, Nano,
AGX Xavier, TX1, TX2) Works with all NVIDIA Jetson ecosystem.
-
ros_jetson_stats
- The ROS jetson-stats wrapper. The status of your NVIDIA jetson in
diagnostic messages.
-
OpenCR - Open-source
Control Module for ROS.
-
acrn-hypervisor
- Defines a device hypervisor reference stack and an architecture for
running multiple software subsystems, managed securely, on a
consolidated system by means of a virtual machine manager.
-
jetson-containers
- Machine Learning Containers for Jetson and JetPack 4.4.
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 - A
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.
-
eCAL - The enhanced
communication abstraction layer (eCAL) is a middleware that enables
scalable, high performance interprocess communication on a single
computer node or between different nodes in a computer network.
-
AUTOSAR-Adaptive
- The implementation of AUTOSAR Adaptive Platform based on the R19-11.
-
ocpp - The Open Charge
Point Protocol (OCPP) is a network protocol for communication between
electric vehicle chargers and a central backoffice system.
-
micro-ROS for Arduino
- A experimental micro-ROS library for baremetal projects based on
Arduino IDE or Arduino CLI.
-
mqtt_bridge -
Provides a functionality to bridge between ROS and MQTT in
bidirectional.
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 - 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.
-
openwifi - Linux
mac80211 compatible full-stack IEEE802.11/Wi-Fi design based on Software
Defined Radio.
Controller Area Network
-
awesome CAN - A
curated list of awesome CAN bus tools, hardware and resources.
-
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 - 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 -
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.
-
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.
-
autosar - A set of python
modules for working with AUTOSAR XML files.
-
canopen - A
Python implementation of the CANopen standard. The aim of the project is
to support the most common parts of the CiA 301 standard in a Pythonic
interface.
-
SavvyCAN - A Qt5
based cross platform tool which can be used to load, save, and capture
canbus frames.
-
Open-Vehicle-Monitoring-System-3
- The system provides live monitoring of vehicle metrics like state of
charge, temperatures, tyre pressures and diagnostic fault conditions.
Sensor and Acuator Interfaces
-
Tesla-API - Provides
functionality to monitor and control the Model S (and future Tesla
vehicles) remotely.
-
flirpy - 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.
-
ros2_ouster_drivers
- These are an implementation of ROS2 drivers for the Ouster OS-1 3D
lidars.
-
livox_ros_driver
- A new ROS package, specially used to connect LiDAR products produced
by Livox.
-
velodyne - A
collection of ROS 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.
-
ifm3d - Library and Utilities
for working with ifm pmd-based 3D ToF Cameras.
-
cepton_sdk_redist
- Provides ROS support for Cepton LiDAR.
-
jetson_csi_cam
- A ROS package making it simple to use CSI cameras on the Nvidia Jetson
TK1, TX1, or TX2 with ROS.
-
ros_astra_camera
- A ROS driver for Orbbec 3D cameras.
-
spot_ros -
ROS Driver for Spot.
-
blickfeld-scanner-lib
- Cross-platform library to communicate with LiDAR devices of the
Blickfeld GmbH.
-
TauLidarCamera
- The host-side API for building applications with the Tau LiDAR Camera.
Security
-
owasp-threat-dragon-desktop
- Threat Dragon is a free, open-source, cross-platform threat modeling
application including system diagramming and a rule engine to
auto-generate threats/mitigations.
-
launch_ros_sandbox
- Can define launch files running nodes in restrained environments, such
as Docker containers or separate user accounts with limited privileges.
-
wolfssl - 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 - An open
source VPN daemon.
-
openfortivpn -
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
- A software composition analysis utility that detects publicly
disclosed vulnerabilities in application dependencies.
-
Firejail - 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
- 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 - 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 -
Passbolt is a free and open source password manager that allows team
members to store and share credentials securely.
-
gopass - A password
manager for the command line written in Go.
-
pass - The standard unix
password manager.
-
Vault - 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 - 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.
-
openscap - The oscap
program is a command line tool that allows users to load, scan,
validate, edit, and export SCAP documents.
Datasets
-
Papers With Code -
Thousands of machine learning datasets provided by Papers With Code.
-
KITTI-360
- This large-scale dataset contains 320k images and 100k laser scans in
a driving distance of 73.7km.
-
waymo_ros - This is a
ROS package to connect Waymo open dataset to ROS.
-
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 - A
Large-Scale Dataset for Driving Behavior Learning.
-
argoverse-api -
Official GitHub repository for Argoverse dataset.
-
DDAD - 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.
-
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.
-
Atlatec Sample Map Data
- 3D map for autonomous driving and simulation created from nothing but
two cameras and GPS in downtown San Francisco.
-
Lyft Level 5 Dataset
- Level 5 is developing a self-driving system for the Lyft network.
We’re collecting and processing data from our autonomous fleet and
sharing it with you.
-
holicity - A City-Scale
Data Platform for Learning Holistic 3D Structures.
-
UTD19 - Largest multi-city traffic
dataset publically available.
-
ASTYX HIRES2019 DATASET
- Automotive Radar Dataset for Deep Learning Based 3D Object Detection.
-
Objectron
- A collection of short, object-centric video clips, which are
accompanied by AR session metadata that includes camera poses, sparse
point-clouds and characterization of the planar surfaces in the
surrounding environment.
-
ONCE dataset
- A large-scale autonomous driving dataset with 2D&3D object
annotations.
Thanks to the team of xpp for
creating this awesome GIF we use.