😎 A curated list of robotics libraries and software
Clone or download
Latest commit 4b8f236 Dec 24, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
COMPARISONS.md Update COMPARISONS.md Aug 2, 2018
CONTRIBUTING.md Update CONTRIBUTING.md May 5, 2016
LICENSE Initial commit Apr 16, 2016
README.md Add ARGoS Dec 24, 2018

README.md

Awesome Robotics Libraries

A curated list of robotics simulators and libraries.

Table of Contents

Simulators

Free or Open Source
  • AirSim - Simulator based on Unreal Engine for autonomous vehicles [github AirSim]
  • ARGoS - Physics-based simulator designed to simulate large-scale robot swarms [github ilpincy/argos3]
  • ARTE - Matlab toolbox focussed on robotic manipulators [github 4rtur1t0/ARTE]
  • CARLA - Open-source simulator for autonomous driving research [github carla-simulator/carla]
  • Gazebo - Dynamic multi-robot simulator [bitbucket]
  • GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs [github graspit]
  • Isaac - Nvidia's virtual simulator for robots
  • MORSE - Modular open robots simulation engine [github morse]
  • Neurorobotics Platform - Internet-accessible simulation of robots controlled by spiking neural networks [bitbucket]
  • V-REP - Virtual robot experimentation platform [github CoppeliaRobotics/v_rep]
  • Webots - Robot simulator that provides a complete development environment [github omichel/webots]
Commercial
Cloud
  • AWS RoboMaker - Service that makes it easy to develop, test, and deploy intelligent robotics applications at scale

Libraries

Dynamics Simulation

⚠️ 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
ARCSim soft C++
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
Flex rigid, soft, particle, fluid C++ github NVIDIAGameWorks/FleX
FROST rigid MATLAB BSD-3-Clause github ayonga/frost-dev
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
MBSim (todo) (todo) C++ (not specified) github mbsim-env/mbsim
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
mvsim vehicle (todo) C++ GPL-3.0 github ual-arm-ros-pkg/mvsim
Newton Dynamics (todo) (todo) C++ Zlib github newton-dynamics
nphysics (todo) (todo) Rust BSD-3-Clause github sebcrozet/nphysics
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, urdf, analytical derivatives, code generation C++, Python BSD-2-Clause github pinocchio
PositionBasedDynamics (todo) (todo) C++ MIT github PositionBasedDynamics
PyDy (todo) (todo) Python BSD-3-Clause github pydy
RBDL rigid ik,id,urdf C++, Python Zlib bitbucket
RBDyn rigid (todo) C++, Python LGPL-3.0 github RBDyn
ReactPhysics3d (todo) (todo) C++ Zlib github reactphysics3d
RigidBodyDynamics.jl rigid (todo) Julia MIT "Expat" github RigidBodyDynamics.jl
Robopy (todo) (todo) Python 3 MIT github adityadua24/robopy
Robotics Library (todo) (todo) C++ GPL-3.0 or BSD-2-Clause github rl
RobWork (todo) (todo) C++ Apache-2.0 SVN (id: 'Guest', pw: '')
siconos (todo) (todo) C++, Python Apache-2.0 github siconos
Simbody rigid, molecules id, urdf C++ Apache-2.0 github simbody
SOFA rigid, soft, 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

Inverse Kinematics

  • IKBT - A python package to solve robot arm inverse kinematics in symbolic form [github uw-biorobotics/IKBT]
  • RelaxedIK - Real-time Synthesis of Accurate and Feasible Robot Arm Motion [github uwgraphics/relaxed_ik]

Machine Learning

  • DLL - Deep Learning Library (DLL) for C++ [github wichtounet/dll]
  • DyNet - The Dynamic Neural Network Toolkit [github clab/dynet]
  • Fido - Lightweight C++ machine learning library for embedded electronics and robotics [github FidoProject/Fido]
  • MiniDNN - A header-only C++ library for deep neural networks [github yixuan/MiniDNN]
  • mlpack - Scalable C++ machine learning library [github mlpack/mlpack]
  • OpenAI Gym - Developing and comparing reinforcement learning algorithms [github gym]
  • RLLib - Temporal-difference learning algorithms in reinforcement learning [github samindaa/RLLib]
  • tiny-dnn - Header only, dependency-free deep learning framework in C++14 [github tiny-dnn/tiny-dnn]

Motion Planning and Control

  • AIKIDO - Solving robotic motion planning and decision making problems. [github aikido]
  • CuiKSuite - Applications to solve position analysis and path planning problems
  • Control Toolbox - Control, estimation, optimization and motion planning in robotics [bitbucket]
  • GPMP2 - Gaussian Process Motion Planner 2 [github gtrll/gpmp2]
  • HPP - Path planning for kinematic chains in environments cluttered with obstacles [github]
  • MoveIt! - Motion planning framework [github moveit]
  • OMPL - Open motion planning library [bitbucket, github ompl]
  • ROS Behavior Tree - [github miccol/ROS-Behavior-Tree]
  • TOPP-RA - Time-parameterizing robot trajectories subject to kinematic and dynamic constraints [github hungpham2511/toppra]
Motion Optimizer
  • opt_control - Time-optimal Trajectory Generation and Control [github AIS-Bonn/opt_control]
  • towr - A light-weight, Eigen-based C++ library for trajectory optimization for legged robots [github ethz-adrl/towr]
  • trajopt - Framework for generating robot trajectories by local optimization [github joschu/trajopt]
Nearest Neighbor
3D Mapping
  • libpointmatcher - Iterative Closest Point library for 2-D/3-D mapping in Robotics [github ethz-asl/libpointmatcher]
  • Octree - Fast radius neighbor search with an Octree [github jbehley/octree]
  • OctoMap - Efficient Probabilistic 3D Mapping Framework Based on Octrees [github octomap]
  • PCL - 2D/3D image and point cloud processing [github PointCloudLibrary/pcl]
  • voxblox - Flexible voxel-based mapping focusing on truncated and Euclidean signed distance fields [github voxblox]
  • Utility Software
    • Goxel - Free and open source 3D voxel editor [github guillaumechereau/goxel]

Optimization

  • CasADi - Symbolic framework for algorithmic differentiation and numeric optimization [github casadi]
  • Ceres Solver - Large scale nonlinear optimization library [github ceres-solver]
  • EXOTica - Generic optimisation toolset for robotics platforms [github ipab-slmc/exotica]
  • hpipm - High-performance interior-point-method QP solvers (Ipopt, Snopt) [github giaf/hpipm]
  • HYPRE - Parallel solvers for sparse linear systems featuring multigrid methods [github LLNL/hypre]
  • ifopt - An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt) [github ifopt]
  • Ipopt - Large scale nonlinear optimization library [github Ipopt]
  • libcmaes - Blackbox stochastic optimization using the CMA-ES algorithm [github beniz/libcmaes]
  • limbo - Gaussian processes and Bayesian optimization of black-box functions [github resibots/limbo]
  • lpsolvers - Linear Programming solvers in Python with a unified API [github lpsolvers]
  • NLopt - Nonlinear optimization [github nlopt]
  • Pagmo - Scientific library for massively parallel optimization [github esa/pagmo2]
  • qpsolvers - Quadratic Programming solvers in Python with a unified API [github qpsolvers]
  • RobOptim - Numerical Optimization for Robotics. [github roboptim/roboptim-core]
  • SCS - Numerical optimization for solving large-scale convex cone problems [github scs]
  • sferes2 - Evolutionary computation [github sferes2/sferes2]

Robot Modeling

Robot Model Description Format
  • 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/urdfdom]
Utility to Build Robot Models
  • phobos - Add-on for Blender creating URDF and SMURF robot models [github phobos]

Robot Platform

  • AutoRally - High-performance testbed for advanced perception and control research [github autorally/autorally]
  • Linorobot - ROS compatible ground robots [github linorobot/linorobot]
  • Rock - Software framework for robotic systems
  • ROS - Flexible framework for writing robot software [github repos]
  • ROS 2 - Version 2.0 of the Robot Operating System (ROS) software stack [github repos]
  • YARP - Communication and device interfaces applicable from humanoids to embedded devices [github robotology/yarp]

SLAM

  • Cartographer - Real-time SLAM in 2D and 3D across multiple platforms and sensor configurations [github cartographer]
  • DSO - Novel direct and sparse formulation for Visual Odometry [github dso]
  • ElasticFusion - Real-time dense visual SLAM system [github ElasticFusion]
  • fiducials - Simultaneous localization and mapping using fiducial markers [github UbiquityRobotics/fiducials]
  • GTSAM - Smoothing and mapping (SAM) in robotics and vision [bitbucket]
  • Kintinuous - Real-time large scale dense visual SLAM system [github Kintinuous]
  • LSD-SLAM - Real-time monocular SLAM [github lsdslam]
  • ORB-SLAM2 - Real-time SLAM library for Monocular, Stereo and RGB-D cameras [github ORB_SLAM2]
  • SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies [github srba]

SLAM Dataset

Vision

Fluid

[Multiphysics]

  • Kratos - Framework for building parallel multi-disciplinary simulation software [github KratosMultiphysics/Kratos]

Math

  • linalg.h - Single header public domain linear algebra library for C++11 [github sgorsten/linalg]
  • Sophus - Lie groups using Eigen [github strasdat/Sophus]
  • SpaceVelAlg - Spatial vector algebra with the Eigen3 [github jrl-umi3218/SpaceVecAlg]

Other Awesome Lists

Contributing

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

License

CC0