A curated list of robotics simulators and libraries.
- AirSim - Simulator based on Unreal Engine for autonomous vehicles [github
]
- ARTE - Matlab toolbox focussed on robotic manipulators [github
]
- Gazebo - Dynamic multi-robot simulator [bitbucket]
- GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs [github
]
- Isaac - Nvidia's virtual simulator for robots
- MORSE - Modular open robots simulation engine [github
]
- V-REP - Virtual robot experimentation platform
- Actin Simulation
- RobotDK - Simulation and OLP for robots
- RobotStudio
- Robot Virtual Worlds
- Virtual Robotics Toolkit
- Visual Components
- Webots - Robot simulator that provides a complete development environment
⚠️ 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 | |
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 | |
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 | C++, Python | LGPL-3.0 | github | |
PositionBasedDynamics | (todo) | (todo) | C++ | MIT | github | |
PyDy | (todo) | (todo) | Python | BSD-3-Clause | github | |
RBDL | rigid | ik | C++, Python | LGPL-3.0 | bitbucket | |
RBDyn | rigid | (todo) | C++, Python | LGPL-3.0 | github | |
ReactPhysics3d | (todo) | (todo) | C++ | Zlib | 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 | SVN (id/pw required) | |
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 | |
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
- 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 vision
- urdf: urdf parser
- sdf: sdf parser
- OpenAI Gym - Developing and comparing reinforcement learning algorithms [github
]
- Aikido - Solving robotic motion planning and decision making problems. [github
]
- CuiKSuite - Applications to solve position analysis and path planning problems
- Control Toolbox - Control, estimation, optimization and motion planning in robotics [bitbucket]
- HPP - Path planning for kinematic chains in environments cluttered with obstacles [github]
- MoveIt! - Motion planning framework [github
]
- OMPL - Open motion planning library [bitbucket, github
]
- Cover-Tree - Cover tree data structure for quick k-nearest-neighbor search [github
]
- Faster cover trees by Mike Izbicki et al., ICML 2015.
- FLANN - Fast Library for Approximate Nearest Neighbors [github
]
- nanoflann - Nearest Neighbor search with KD-trees [github
]
- OctoMap - Efficient Probabilistic 3D Mapping Framework Based on Octrees [github
]
- voxblox - Flexible voxel-based mapping focusing on truncated and Euclidean signed distance fields [github
]
- CasADi - Symbolic framework for algorithmic differentiation and numeric optimization [github
]
- Ceres Solver - Large scale nonlinear optimization library [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
]
- NLopt - Nonlinear optimization [github
]
- RobOptim - Numerical Optimization for Robotics. [github
]
- SCS - Numerical optimization for solving large-scale convex cone 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
]
- phobos - Add-on for Blender creating URDF and SMURF robot models [github
]
- Linorobot - ROS compatible ground robots [github
]
- Rock - Software framework for robotic systems
- ROS - Flexible framework for writing robot software [github repos]
- YARP - Communication and device interfaces applicable from humanoids to embedded devices [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
]
- 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
]
- SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies [github
]
- Awesome Robotics (Kiloreux)
- Awesome Robotics (ahundt)
- Awesome Artificial Intelligence
- Awesome Collision Detection
- Awesome Computer Vision
- Awesome Machine Learning
- Awesome Deep Learning
- Awesome Gazebo
- PythonRobotics
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.