Awesome Robotics Libraries
A curated list of robotics simulators and libraries.
Table of Contents
Free or Open Source
- AI2-THOR - Python framework with a Unity backend, providing interaction, navigation, and manipulation support for household based robotic agents [github
]
- AirSim - Simulator based on Unreal Engine for autonomous vehicles [github
]
- ARGoS - Physics-based simulator designed to simulate large-scale robot swarms [github
]
- ARTE - Matlab toolbox focussed on robotic manipulators [github
]
- AVIS Engine - Autonomous Vehicles Intelligent simulation software, A Fast and robust simulator software for Autonomous vehicle development. [github
]
- CARLA - Open-source simulator for autonomous driving research [github
]
- CoppeliaSim - Formaly V-REP. Virtual robot experimentation platform [github
]
- Gazebo - Dynamic multi-robot simulator [github
]
- GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs [github
]
- Habitat-Sim - Simulation platform for research in embodied artificial intelligence [github
]
- Hexapod Robot Simulator - Open-source hexapod robot inverse kinematics and gaits visualizer [github
]
- Ignition Gazebo - Open source robotics simulator [github
]
- Isaac Sim - Nvidia’s robotic simulation environment with GPU physics simulation and ray tracing
- ManiSkill - A robot simulation and behavior learning package powered by SAPIEN, with a strong focus on manipulation skills.
- MORSE - Modular open robots simulation engine [github
]
- 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
]
- PyBullet_Industrial - A extension to PyBullet that allows for the simulation of various robotic manufacturing processes such as milling or 3D-printing. [github
]
- Robot Gui - A three.js based 3D robot interface [github
]
- SAPIEN - A realistic and physics-rich simulated environment that hosts a large-scale set for articulated objects. [github
]
- Simbad - A Java 3D robot simulator, enables to write own robot controller with modifying environment using available sensors.
- Unity - Popular game engine that now offers open-source tools, tutorials, and resources for robotics simulation [github
]
- Webots - A complete development environment to model, program and simulate robots, vehicles and mechanical systems [github
]
Commercial
Cloud
- AWS RoboMaker - Service that makes it easy to develop, test, and deploy intelligent robotics applications at scale
:warning: 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, urdf, sdf |
C++, Python |
Zlib |
github |
 |
| CHRONO::ENGINE |
rigid, soft, granular, fluid |
ik, urdf |
C++, Python |
BSD-3-Clause |
github |
 |
| DART |
rigid, soft |
ik, id, plan, urdf, sdf |
C++, Python |
BSD-2-Clause |
github |
 |
| Drake |
rigid, aero, fluid |
ik, trj-opt, plan |
C++, Matlab |
BSD-3-Clause |
github |
 |
| Flex |
rigid, soft, particle, fluid |
|
C++ |
|
github |
 |
| FROST |
rigid |
|
MATLAB |
BSD-3-Clause |
github |
 |
| IBDS |
rigid, particle |
|
C++ |
Zlib |
|
|
| idyntree |
rigid |
id |
C++, Python, Matlab, Lua |
LGPL-2.1 |
github |
 |
| KDL |
rigid |
ik |
C++ |
LGPL-2.1 |
github |
 |
| kindr |
rigid |
(todo) |
C++, Matlab |
BSD-3-Clause |
github |
 |
| Klampt |
(todo) |
(todo) |
C++, Python |
BSD-3-Clause |
github |
 |
| LibrePilot |
uav, vehicles |
(todo) |
C++ |
GPL-3.0 |
bitbucket, github |
 |
| MARS |
(todo) |
(todo) |
C++, Python |
LGPL-3.0 |
github |
 |
| MBDyn |
(todo) |
(todo) |
C++ |
GPL-2.1 |
download |
|
| MBSim |
(todo) |
(todo) |
C++ |
(not specified) |
github |
 |
| MBSlib |
(todo) |
(todo) |
C++ |
LGPL-3.0 |
github |
 |
| metapod |
(todo) |
(todo) |
C++ |
LGPL-3.0 |
github |
 |
| Moby |
rigid |
id |
C++ |
GPL-2.0 |
github |
 |
| mrpt |
vehicle |
slam, cv |
C++, Python, Matlab |
BSD-3-Clause |
github |
 |
| MuJoCo |
(todo) |
id |
C++, Python |
licenses |
closed source |
|
| mvsim |
vehicle |
(todo) |
C++ |
GPL-3.0 |
github |
 |
| Newton Dynamics |
(todo) |
(todo) |
C++ |
Zlib |
github |
 |
| nphysics |
(todo) |
(todo) |
Rust |
BSD-3-Clause |
github |
 |
| ODE |
rigid |
|
C++ |
LGPL-2.1 or BSD-3-Clause |
bitbucket |
|
| OpenRAVE |
(todo) |
(todo) |
C++, Python |
LGPL-3.0 |
github |
 |
| pinocchio |
rigid |
ik, id, urdf, analytical derivatives, code generation |
C++, Python |
BSD-2-Clause |
github |
 |
| PositionBasedDynamics |
(todo) |
(todo) |
C++ |
MIT |
github |
 |
| PhysX |
(todo) |
(todo) |
C++ |
unknown |
github |
 |
| PyDy |
(todo) |
(todo) |
Python |
BSD-3-Clause |
github |
 |
| RBDL |
rigid |
ik,id,urdf |
C++, Python |
Zlib |
github |
 |
| RBDyn |
rigid |
(todo) |
C++, Python |
LGPL-3.0 |
github |
 |
| RaiSim |
(todo) |
(todo) |
C++ |
custom |
github |
 |
| ReactPhysics3d |
(todo) |
(todo) |
C++ |
Zlib |
github |
 |
| RigidBodyDynamics.jl |
rigid |
(todo) |
Julia |
MIT “Expat” |
github |
 |
| Rigs of Rods |
rigid, soft, vehicle |
(todo) |
C++ |
GPL-3.0 |
github |
 |
| Robopy |
(todo) |
(todo) |
Python 3 |
MIT |
github |
 |
| Robotics Library |
(todo) |
(todo) |
C++ |
GPL-3.0 or BSD-2-Clause |
github |
 |
| RobWork |
(todo) |
(todo) |
C++ |
Apache-2.0 |
gitlab |
|
| siconos |
(todo) |
(todo) |
C++, Python |
Apache-2.0 |
github |
 |
| Simbody |
rigid, molecules |
id, urdf |
C++ |
Apache-2.0 |
github |
 |
| SOFA |
rigid, soft, medical |
(todo) |
C++ |
LGPL-2.1 |
github |
 |
| Tiny Differentiable Simulator |
rigid |
(todo) |
C++, Python |
Apache-2.0 |
github |
 |
| trep |
rigid |
dm, trj-opt |
C, Python |
GPL-3.0 |
github |
 |
| qu3e |
rigid |
- |
C++ |
Zlib |
github |
 |
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
- IKBT - A python package to solve robot arm inverse kinematics in symbolic form [github
]
- Kinpy - A simple pure python package to solve inverse kinematics [github
]
- Lively - A highly configurable toolkit for commanding robots in mixed modalities [github
]
- RelaxedIK - Real-time Synthesis of Accurate and Feasible Robot Arm Motion [github
]
- Trip - A python package that solves inverse kinematics of parallel-, serial- or hybrid-robots [github
]
- AllenAct - Python/PyTorch-based Research Framework for Embodied AI [github
]
- Any4LeRobot - A collection of utilities and tools for LeRobot [github
]
- DLL - Deep Learning Library (DLL) for C++ [github
]
- DyNet - The Dynamic Neural Network Toolkit [github
]
- Fido - Lightweight C++ machine learning library for embedded electronics and robotics [github
]
- Ivy - Unified Machine Learning Framework [github
]
- LeRobot - State-of-the-art approaches, pretrained models, datasets, and simulation environments for real-world robotics in PyTorch. [github
]
- LeRobot Episode Scoring Toolkit - One-click tool to score, filter, and export higher-quality LeRobot datasets. [github
]
- MiniDNN - A header-only C++ library for deep neural networks [github
]
- mlpack - Scalable C++ machine learning library [github
]
- OpenAI Gym - Developing and comparing reinforcement learning algorithms [github
]
- RLLib - Temporal-difference learning algorithms in reinforcement learning [github
]
- robosuite - A modular simulation framework and benchmark for robot learning [github
]
- tiny-dnn - Header only, dependency-free deep learning framework in C++14 [github
]
- AIKIDO - Solving robotic motion planning and decision making problems. [github
]
- Bioptim - Bioptim, a Python Framework for Musculoskeletal Optimal Control in Biomechanics [github
]
- CuiKSuite - Applications to solve position analysis and path planning problems
- cuRobo - A CUDA accelerated library containing a suite of robotics algorithms that run significantly faster. [github
]
- Control Toolbox - Open-Source C++ Library for Robotics, Optimal and Model Predictive Control [github
]
- Crocoddyl - Optimal control library for robot control under contact sequence [github
]
- Fields2Cover - Robust and efficient coverage paths for autonomous agricultural vehicles [github
]
- GPMP2 - Gaussian Process Motion Planner 2 [github
]
- HPP - Path planning for kinematic chains in environments cluttered with obstacles [github]
- MoveIt! - Motion planning framework [github
]
- OMPL - Open motion planning library [bitbucket, github
]
- OCS2 - Efficient continuous and discrete time optimal control implementation [bitbucket]
- pymanoid - Humanoid robotics prototyping environment based on OpenRAVE [github
]
- ROS Behavior Tree - [github
]
- Ruckig - Real-time, time-optimal and jerk-constrained online trajectory generation. [github
]
- The Kautham Project - A robot simulation toolkit for motion planning [github
]
- TOPP-RA - Time-parameterizing robot trajectories subject to kinematic and dynamic constraints [github
]
- Ungar - Expressive and efficient implementation of optimal control problems using template metaprogramming [github
]
Motion Optimizer
- TopiCo - Time-optimal Trajectory Generation and Control [github
]
- towr - A light-weight, Eigen-based C++ library for trajectory optimization for legged robots [github
]
- TrajectoryOptimization - A fast trajectory optimization library written in Julia [github
]
- trajopt - Framework for generating robot trajectories by local optimization [github
]
Nearest Neighbor
3D Mapping
- libpointmatcher - Iterative Closest Point library for 2-D/3-D mapping in Robotics [github
]
- Octree - Fast radius neighbor search with an Octree [github
]
- OctoMap - Efficient Probabilistic 3D Mapping Framework Based on Octrees [github
]
- PCL - 2D/3D image and point cloud processing [github
]
- Treexy - Brutally fast, sparse, 3D Voxel Grid [github
]
- voxblox - Flexible voxel-based mapping focusing on truncated and Euclidean signed distance fields [github
]
- wavemap - Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping [github
]
- Utility Software
- CasADi - Symbolic framework for algorithmic differentiation and numeric optimization [github
]
- Ceres Solver - Large scale nonlinear optimization library [github
]
- eigen-qld - Interface to use the QLD QP solver with the Eigen3 library [github
]
- EXOTica - Generic optimisation toolset for robotics platforms [github
]
- hpipm - High-performance interior-point-method QP solvers (Ipopt, Snopt) [github
]
- HYPRE - Parallel solvers for sparse linear systems featuring multigrid methods [github
]
- ifopt - An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt) [github
]
- Ipopt - Large scale nonlinear optimization library [github
]
- libcmaes - Blackbox stochastic optimization using the CMA-ES algorithm [github
]
- limbo - Gaussian processes and Bayesian optimization of black-box functions [github
]
- lpsolvers - Linear Programming solvers in Python with a unified API [github
]
- NLopt - Nonlinear optimization [github
]
- OptimLib - Lightweight C++ library of numerical optimization methods for nonlinear functions [github
]
- OSQP - The Operator Splitting QP Solver [github
]
- Pagmo - Scientific library for massively parallel optimization [github
]
- ProxSuite - The Advanced Proximal Optimization Toolbox [github
]
- pymoo - Multi-objective Optimization in Python [github
]
- qpsolvers - Quadratic Programming solvers in Python with a unified API [github
]
- RobOptim - Numerical Optimization for Robotics. [github
]
- SCS - Numerical optimization for solving large-scale convex cone problems [github
]
- SHOT - A solver for mixed-integer nonlinear optimization problems [github
]
- sferes2 - Evolutionary computation [github
]
- SDF - XML format that describes objects and environments for robot simulators, visualization, and control (bitbucket)
- urdf - XML format for representing a robot model [github
]
Utility to Build Robot Models
- onshape-to-robot - Converting OnShape assembly to robot definition (SDF or URDF) through OnShape API [github
]
- phobos - Add-on for Blender creating URDF and SMURF robot models [github
]
- AprilSAM - Real-time smoothing and mapping [github
]
- Cartographer - Real-time SLAM in 2D and 3D across multiple platforms and sensor configurations [github
]
- DSO - Novel direct and sparse formulation for Visual Odometry [github
]
- ElasticFusion - Real-time dense visual SLAM system [github
]
- fiducials - Simultaneous localization and mapping using fiducial markers [github
]
- GTSAM - Smoothing and mapping (SAM) in robotics and vision [github
]
- Kintinuous - Real-time large scale dense visual SLAM system [github
]
- LSD-SLAM - Real-time monocular SLAM [github
]
- ORB-SLAM2 - Real-time SLAM library for Monocular, Stereo and RGB-D cameras [github
]
- RTAP-Map - RGB-D Graph SLAM approach based on a global Bayesian loop closure detector [github
]
- SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies [github
]
SLAM Dataset
- Kratos - Framework for building parallel multi-disciplinary simulation software [github
]
- Fastor - Light-weight high performance tensor algebra framework in C++11/14/17 [github
]
- linalg.h - Single header public domain linear algebra library for C++11 [github
]
- manif - Small c++11 header-only library for Lie theory. [github
]
- Sophus - Lie groups using Eigen [github
]
- SpaceVelAlg - Spatial vector algebra with the Eigen3 [github
]
- spatialmath-python - A python package provides classes to represent pose and orientation in 3D and 2D space, along with a toolbox of spatial operations. [github
]
- fuse - General architecture for performing sensor fusion live on a robot [github
]
- Foxglove Studio – A fully integrated visualization and debugging desktop app for your robotics data. Combines functionality of tools like
rviz, rqt, and more. Also available via web app.
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.
