Software Tools

Online Tools

Open-source Software

Robotics

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.”

Computer Vision

  • Open Source Computer Vision Library (OpenCV) - https://opencv.org/
    “OpenCV is an open source computer vision and machine learning software library.”
  • Open source visual servoing platform 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.”

Miscellaneous