/awesome-robotics-libraries

:sunglasses: A curated list of open source robotics libraries and software

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Robotics Libraries

A curated list of open source robotics libraries and software.

Table of Contents

⚠️ The following table is not complete. Please feel free to report if you find something incorrect or missing.

Name Models Features Languages Licenses Code Popularity
Bullet rigid, soft ik, id C++, Python Zlib github bullet3
CHRONO::ENGINE rigid, soft, granular, fluid ik, urdf C++, Python BSD-3-Clause github chrono
DART rigid, soft ik, id, plan, urdf, sdf C++, Python BSD-2-Clause github dart
Drake rigid, aero, fluid ik, trj-opt, plan C++, Matlab BSD-3-Clause github drake
IBDS rigid, particle C++ Zlib
idyntree rigid id C++, Python, Matlab, Lua LGPL-2.1 github idyntree
KDL rigid ik C++ LGPL-2.1 github orocos_kinematics_dynamics
kindr rigid (todo) C++, Matlab BSD-3-Clause github kindr
Klampt (todo) (todo) C++, Python BSD-3-Clause github Klampt
LibrePilot uav, vehicles (todo) C++ GPL-3.0 bitbucket, github LibrePilot
MARS (todo) (todo) C++, Python LGPL-3.0 github mars
MBDyn (todo) (todo) C++ GPL-2.1 download
MBSlib (todo) (todo) C++ LGPL-3.0 github mbslib
metapod (todo) (todo) C++ LGPL-3.0 github metapod
Moby rigid id C++ GPL-2.0 github Moby
mrpt vehicle slam, cv C++, Python, Matlab BSD-3-Clause github mrpt
MuJoCo (todo) id C++, Python licenses closed source
Newton Dynamics (todo) (todo) C++ Zlib github newton-dynamics
ODE rigid C++ LGPL-2.1 or BSD-3-Clause bitbucket
OpenRAVE (todo) (todo) C++, Python LGPL-3.0 github openrave
pinocchio rigid ik, id C++, Python LGPL-3.0 github pinocchio
PositionBasedDynamics (todo) (todo) C++ MIT github PositionBasedDynamics
PyDy (todo) (todo) Python BSD-3-Clause github pydy
RBDL rigid ik C++, Python LGPL-3.0 bitbucket
RBDyn rigid (todo) C++, Python LGPL-3.0 github RBDyn
ReactPhysics3d (todo) (todo) C++ Zlib github reactphysics3d
Robotics Library (todo) (todo) C++ GPL-3.0 or BSD-2-Clause github rl
RobWork (todo) (todo) C++ Apache-2.0 SVN (id/pw required)
siconos (todo) (todo) C++, Python Apache-2.0 github siconos
Simbody rigid, molecules id, urdf C++ Apache-2.0 github simbody
SOFA medical (todo) C++ LGPL-2.1 github sofa
trep rigid dm, trj-opt C, Python GPL-3.0 github trep
qu3e rigid - C++ Zlib github qu3e

For simplicity, shortened names are used to represent the supported models and features as

  • Supported Models

    • rigid: rigid bodies
    • soft: soft bodies
    • aero: aerodynamics
    • granular: granular materials (like sand)
    • fluid: fluid dynamics
    • vehicles
    • uav: unmanned aerial vehicles (like drones)
    • medical
    • molecules
    • parallel: parallel mechanism (like Stewart platform)
  • Features on Simulation, Analysis, Planning, Control Design

    • dm: discrete mechanics
    • ik: inverse kinematics solvers
    • id: inverse dynamics
    • slam: simultaneous localization and mapping
    • trj-opt: trajectory optimization
    • plan: motion planning algorithms
    • cv: computer visionn
    • urdf: urdf parser
    • sdf: sdf parser
  • Aikido (github aikido) - A C++ library for solving robotic motion planning and decision making problems.
  • CuiKSuite - A set of applications to solve position analysis and path planning problems with applications mainly to robotics, but also to molecular biology
  • HPP (github) - Humanoid Path Planner: a C++ Software Developement Kit implementing path planning for kinematic chains in environments cluttered with obstacles.
  • MoveIt! (github moveit) - State of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation.
  • OMPL (bitbucket, github ompl) - The Open Motion Planning Library.
Nearest Neighbor
  • Cover-Tree (github Cover-Tree) - A well-documented C++ implementation of the cover tree datastructure for quick k-nearest-neighbor search
  • FLANN (github flann) - Fast Library for Approximate Nearest Neighbors
  • nanoflann (github nanoflann) - C++ header-only library for Nearest Neighbor (NN) search wih KD-trees
3D Mapping
  • OctoMap (github octomap) - An Efficient Probabilistic 3D Mapping Framework Based on Octrees. Contains the main OctoMap library, the viewer octovis, and dynamicEDT3D.

  • voxblox (github voxblox) - A library for flexible voxel-based mapping, mainly focusing on truncated and Euclidean signed distance fields.

Motion Optimizer
  • trajopt (github) - A software framework for generating robot trajectories by local optimization.
Nonlinear Programming
  • CasADi (github casadi) - A symbolic framework for algorithmic (a.k.a. automatic) differentiation and numeric optimization
  • Ceres Solver (github ceres-solver) - A large scale non-linear optimization library . Ceres Solver has been used in production at Google for more than four years now. It is clean, extensively tested and well documented code that is actively developed and supported.
  • Ipopt (github Ipopt) - Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale ​nonlinear optimization.
  • NLopt (github nlopt) - NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.
  • SCS (github scs) - SCS (Splitting Conic Solver) is a numerical optimization package for solving large-scale convex cone problems, based on our paper Conic Optimization via Operator Splitting and Homogeneous Self-Dual Embedding.
  • SDF - XML format that describes objects and environments for robot simulators, visualization, and control. (bitbucket)
  • urdf - XML format for representing a robot model. (github)
  • ROS (github repos) - A set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project.
  • YARP (github) - A library and toolkit for communication and device interfaces, used on everything from humanoids to embedded devices.
  • Cartographer (github cartographer) - A system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
  • DSO (github dso) - DSO is a novel direct and sparse formulation for Visual Odometry.
  • ElasticFusion (github ElasticFusion) - Real-time dense visual SLAM system capable of capturing comprehensive dense globally consistent surfel-based maps of room scale environments explored using an RGB-D camera.
  • Kintinuous (github Kintinuous) - Real-time dense visual SLAM system capable of producing high quality globally consistent point and mesh reconstructions over hundreds of metres in real-time with only a low-cost commodity RGB-D sensor.
  • LSD-SLAM (github lsdslam) - LSD-SLAM is a novel approach to real-time monocular SLAM. It is fully direct (i.e. does not use keypoints / features) and creates large-scale, semi-dense maps in real-time on a laptop.
  • ORB-SLAM2 (github ORB_SLAM2) - A real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction (in the stereo and RGB-D case with true scale).
  • SRBA (github srba) - Sparser Relative Bundle Adjustment (SRBA) is a header-only C++ library for solving SLAM/BA in relative coordinates with flexibility for different submapping strategies and aimed at constant time local graph update. BSD 3-Clause License.
  • OpenAI Gym (github gym) - A toolkit for developing and comparing reinforcement learning algorithms. It supports teaching agents everything from walking to playing games like Pong or Go.
    • OpenAI Gym with DART (github dart-env)
Commercial
  • Virtual Robotics Toolkit
  • Webots - A commercial robot simulator used in more than 1200 companies, universities and research centers worldwide for R&D, education and research.

The comparisons are moved to COMPARISONS.md.

Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.

CC0