Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Add manif 8f2a414 Aug 22, 2019
13 contributors

Users who have contributed to this file

@jslee02 @Gjacquenot @ferrolho @awinkler @pedrovhb @martinfelis @jcarpent @jacknlliu @fischerq @erwincoumans @carlosjoserg @Po-Jen @jimaldon
290 lines (234 sloc) 37.6 KB

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]
  • PyBullet - An easy to use simulator for robotics and deep reinforcement learning [github bullet3]
  • 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++
Bounce rigid C++ Zlib github irlanrobson/bounce
Bullet rigid, soft ik, id, urdf, sdf 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
PhysX (todo) (todo) C++ unknown github NVIDIAGameWorks/PhysX
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
RaiSim (todo) (todo) C++ custom github leggedrobotics/raisimLib
ReactPhysics3d (todo) (todo) C++ Zlib github reactphysics3d
RigidBodyDynamics.jl rigid (todo) Julia MIT "Expat" github RigidBodyDynamics.jl
Rigs of Rods rigid, soft, vehicle (todo) C++ GPL-3.0 github RigsOfRods/rigs-of-rods
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 gitlab
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 - Open-Source C++ Library for Robotics, Optimal and Model Predictive Control [github ethz-adrl/control-toolbox]
  • 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]
  • pymanoid - Humanoid robotics prototyping environment based on OpenRAVE [github stephane-caron/pymanoid]
  • ROS Behavior Tree - [github miccol/ROS-Behavior-Tree]
  • The Kautham Project - A robot simulation toolkit for motion planning [github kautham]
  • 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]
  • eigen-qld - Interface to use the QLD QP solver with the Eigen3 library [github jrl-umi3218/eigen-qld]
  • 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]
  • OptimLib - Lightweight C++ library of numerical optimization methods for nonlinear functions [github kthohr/optim]
  • Pagmo - Scientific library for massively parallel optimization [github esa/pagmo2]
  • pymoo - Multi-objective Optimization in Python [github msu-coinlab/pymoo]
  • 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]
  • RTAP-Map - RGB-D Graph SLAM approach based on a global Bayesian loop closure detector [github introlab/rtabmap]
  • 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]
  • manif - Small c++11 header-only library for Lie theory. [github artivis/manif]
  • Sophus - Lie groups using Eigen [github strasdat/Sophus]
  • SpaceVelAlg - Spatial vector algebra with the Eigen3 [github jrl-umi3218/SpaceVecAlg]

ETC

  • fuse - General architecture for performing sensor fusion live on a robot [github locusrobotics/fuse]

Other Awesome Lists

Contributing

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

License

CC0

You can’t perform that action at this time.