Skip to content

Latest commit

 

History

History
323 lines (268 loc) · 46.6 KB

README.md

File metadata and controls

323 lines (268 loc) · 46.6 KB

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 AI2-THOR]
  • 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]
  • AVIS Engine - Autonomous Vehicles Intelligent simulation software, A Fast and robust simulator software for Autonomous vehicle development. [github AvisEngine/AVIS-Engine-Python-API]
  • CARLA - Open-source simulator for autonomous driving research [github carla-simulator/carla]
  • CoppeliaSim - Formaly V-REP. Virtual robot experimentation platform [github CoppeliaRobotics/CoppeliaSimLib]
  • Gazebo - Dynamic multi-robot simulator [github osrf/gazebo]
  • GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs [github graspit]
  • Habitat-Sim - Simulation platform for research in embodied artificial intelligence [github facebookresearch/habitat-sim]
  • Hexapod Robot Simulator - Open-source hexapod robot inverse kinematics and gaits visualizer [github mithi/hexapod]
  • Ignition Gazebo - Open source robotics simulator [github ignitionrobotics/ign-gazebo]
  • 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]
  • PyBullet_Industrial - A extension to PyBullet that allows for the simulation of various robotic manufacturing processes such as milling or 3D-printing. [github pybullet_industrial]
  • Robot Gui - A three.js based 3D robot interface [github glumb/robot-gui]
  • 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 Unity-Technologies/Unity-Robotics-Hub]
  • 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

⚠️ 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 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 github rbdl
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
robosuite (todo) (todo) Python MIT github ARISE-Initiative/robosuite
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
Tiny Differentiable Simulator rigid (todo) C++, Python Apache-2.0 github google-research/tiny-differentiable-simulator
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

  • IKBT - A python package to solve robot arm inverse kinematics in symbolic form [github uw-biorobotics/IKBT]
  • Lively - A highly configurable toolkit for commanding robots in mixed modalities [github Wisc-HCI/lively]
  • RelaxedIK - Real-time Synthesis of Accurate and Feasible Robot Arm Motion [github uwgraphics/relaxed_ik]
  • Trip - A python package that solves inverse kinematics of parallel-, serial- or hybrid-robots [github TriPed-Robot/TriP]
  • AllenAct - Python/PyTorch-based Research Framework for Embodied AI [github wichtounet/dll]
  • 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]
  • Ivy - Unified Machine Learning Framework [github unifyai/ivy]
  • 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]
  • AIKIDO - Solving robotic motion planning and decision making problems. [github aikido]
  • Bioptim - Bioptim, a Python Framework for Musculoskeletal Optimal Control in Biomechanics [github pyomeca/bioptim]
  • 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]
  • Crocoddyl - Optimal control library for robot control under contact sequence [github loco-3d/crocoddyl]
  • Fields2Cover - Robust and efficient coverage paths for autonomous agricultural vehicles [github Fields2Cover/Fields2Cover]
  • 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]
  • OCS2 - Efficient continuous and discrete time optimal control implementation [bitbucket]
  • pymanoid - Humanoid robotics prototyping environment based on OpenRAVE [github stephane-caron/pymanoid]
  • ROS Behavior Tree - [github miccol/ROS-Behavior-Tree]
  • Ruckig - Real-time, time-optimal and jerk-constrained online trajectory generation. [github ruckig]
  • 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
  • TopiCo - Time-optimal Trajectory Generation and Control [github AIS-Bonn/TopiCo]
  • towr - A light-weight, Eigen-based C++ library for trajectory optimization for legged robots [github ethz-adrl/towr]
  • TrajectoryOptimization - A fast trajectory optimization library written in Julia [github RoboticExplorationLab/TrajectoryOptimization.jl]
  • 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]
  • Treexy - Brutally fast, sparse, 3D Voxel Grid [github Treexy]
  • 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]
  • 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 hypre-space/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]
  • OSQP - The Operator Splitting QP Solver [github osqp/osqp]
  • Pagmo - Scientific library for massively parallel optimization [github esa/pagmo2]
  • ProxSuite - The Advanced Proximal Optimization Toolbox [github Simple-Robotics/ProxSuite]
  • 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]
  • SHOT - A solver for mixed-integer nonlinear optimization problems [github coin-or/SHOT]
  • sferes2 - Evolutionary computation [github sferes2/sferes2]
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
  • onshape-to-robot - Converting OnShape assembly to robot definition (SDF or URDF) through OnShape API [github phobos]
  • phobos - Add-on for Blender creating URDF and SMURF robot models [github phobos]
  • 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]
  • AprilSAM - Real-time smoothing and mapping [github xipengwang/AprilSAM]
  • 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 [github borglab/gtsam]
  • 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

  • Kratos - Framework for building parallel multi-disciplinary simulation software [github KratosMultiphysics/Kratos]
  • Fastor - Light-weight high performance tensor algebra framework in C++11/14/17 [github romeric/Fastor]
  • 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]
  • fuse - General architecture for performing sensor fusion live on a robot [github locusrobotics/fuse]
  • 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.

CC0