Skip to content

Library

Online Tools

  • Online reStructuredText Editor - http://rst.ninjs.org/
  • Online General Markdown Editor - https://stackedit.io/editor
  • Online Kramdown Markdown Editor - http://kramdown.herokuapp.com/
  • Online Drawing & Figures - https://www.draw.io/
  • Online Hex Converter - https://www.scadacore.com/tools/programming-calculators/online-hex-converter/
  • Online Rotation Converter - https://www.andre-gaschler.com/rotationconverter/
  • Online Logo Generator - https://www.freelogodesign.org/

Free Image Library

  • OpenclipArt - https://openclipart.org/
  • Unsplash - https://unsplash.com/

Frameworks/Libraries

Robotics

  • Robot Operating System (ROS) - ROS1, ROS2
    "ROS is a set of software libraries and tools that help you build robot applications."

  • Dronecode Software Platform - https://www.dronecode.org
    "Dronecode encompasses open source projects that control flight, enable mission planning, and otherwise make drone flight and advanced functionality possible."

  • The Open Motion Planning Library (OMPL) - http://ompl.kavrakilab.org/
    "OMPL, the Open Motion Planning Library, consists of many state-of-the-art sampling-based motion planning algorithms."

  • Drake - https://drake.mit.edu/
    "A planning, control and analysis toolbox for nonlinear dynamical systems"

  • Control Toolbox - https://bitbucket.org/adrlab/ct/wiki/Home
    "An open-source C++ library for efficient modelling, control, estimation, trajectory optimization and model predictive control."

  • CARLA - http://carla.org/ "Open-source simulator for autonomous driving research."

  • SUMO - https://www.dlr.de/ts/en/desktopdefault.aspx/tabid-9883/16931_read-41000/ "SUMO allows modelling of intermodal traffic systems including road vehicles, public transport and pedestrians."

  • Additional robotics libraries: https://github.com/jslee02/awesome-robotics-libraries

Communication

  • Lightweight Communications and Marshalling (LCM) - https://lcm-proj.github.io/
    "LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical."

  • FastRTPS - https://github.com/eProsima/Fast-RTPS
    "eprosima Fast RTPS is a C++ implementation of the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium"

Scientific Computing

  • Eigen - http://eigen.tuxfamily.org/index.php?title=Main_Page
    "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."

  • GSL - GNU Scientific Library - http://www.gnu.org/software/gsl/
    "The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite."

  • CGAL - The Computational Geometry Algorithms Library - https://www.cgal.org/
    "CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library."

  • GNU Octave - https://www.gnu.org/software/octave/
    "GNU Octave is a high-level interpreted language, primarily intended for numerical computations. The Octave language is quite similar to Matlab so that most programs are easily portable."

  • Matplotlib - https://matplotlib.org/
    "Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms."

  • TBB - https://www.threadingbuildingblocks.org/
    "Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable and composable, and that have future-proof scalability."

  • OpenMP - https://www.openmp.org/
    "The OpenMP API specification for parallel programming"

  • Heat Method for Distance Computation - http://www.cs.cmu.edu/~kmcrane/Projects/HeatMethod/index.html
    "The heat method for solving the single- or multiple-source shortest path problem on both flat and curved domains."

Graphics

  • Dear ImGui - https://github.com/ocornut/imgui
    "Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies"

Computer Vision

  • OpenCV - https://opencv.org/
    "OpenCV is an open source computer vision and machine learning software library."

  • ViSP - http://visp.inria.fr/
    "ViSP standing for Visual Servoing Platform is a modular cross platform library that allows prototyping and developing applications using visual tracking and visual servoing technics at the heart of the researches done by Inria Lagadic team."

Operating Systems

  • PREEMPT_RT - https://wiki.linuxfoundation.org/realtime/start
    Patch to improve the realtime performance of Linux kernel

  • Xenomai - https://xenomai.org/ "Xenomai is about making various real-time operating system APIs available to Linux-based platforms. When the target Linux kernel cannot meet the requirements with respect to response time constraints, Xenomai can also supplement it for delivering stringent real-time guarantees."

Debugging

  • Valgrind - http://valgrind.org
    "Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools."

  • Spdlog - https://github.com/gabime/spdlog
    "Very fast, header only, C++ logging library."