/awesome-robotics-libraries

:sunglasses: A curated list of open source robotics libraries and software

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Robotics Libraries

A curated list of open source robotics libraries and software.

Table of Contents

C++

  • Bullet (github bullet3) - Real-Time Physics Simulation
  • CHRONO::ENGINE (github chrono) - C++ library for multibody dynamics simulations.
  • DART (github dart) - Dynamic Animation and Robotics Toolkit.
  • Drake (github drake) - A planning, control, and analysis toolbox for nonlinear dynamical systems.
  • IBDS - A library for dynamic simulation of multi-body systems in C++.
  • KDL (github orocos_kinematics_dynamics) - Orocos Kinematics and Dynamics C++ library.
  • Klampt (github Klampt) - Kris' Locomotion and Manipulation Planning Toolkit
  • MBDyn - Free MultiBody Dynamics Simulation Software
  • MBSlib (github mbslib, paper) - An efficient and modular multibody systems library for kinematics and dynamics simulation, optimization and sensitivity analysis.
  • metapod (github metapod) - A template-based robot dynamics library.
  • Moby (github Moby) - Multi-body dynamics simulation library written in C++.
  • mrpt (github mrpt) - The Mobile Robot Programming Toolkit.
  • MuJoCo (closed source) - A physics engine aiming to facilitate research and development in robotics, biomechanics, graphics and animation, and other areas where fast and accurate simulation is needed.
  • Newton Dynamics (github newton-dynamics) - A cross-platform life-like physics simulation library.
  • ODE (bitbucket) - An open source, high performance library for simulating rigid body dynamics.
  • OpenRAVE (github openrave) - An environment for testing, developing, and deploying robotics motion planning algorithms.
  • pinocchio (github pinocchio) - Dynamic computations using Spatial Algebra.
  • PositionBasedDynamics (PositionBasedDynamics) - A library for the physically-based simulation of rigid bodies, deformable solids and fluids.
  • RBDL (bitbucket) - Rigid Body Dynamics Library.
  • ReactPhysics3d (github reactphysics3d) - An open source C++ physics engine library that can be used in 3D simulations and games.
  • Robotics Library (github rl) - A self-contained C++ library for robot kinematics, motion planning and control.
  • RobWork - A collection of C++ libraries for simulation and control of robot systems.
  • siconos (github siconos) - A software package for the modeling and simulation of nonsmooth dynamical systems.
  • Simbody (github simbody) - A multibody dynamics/physics library for simulating articulated biomechanical/mechanical systems.
  • SOFA (github sofa) - An Open Source framework primarily targeted at real-time simulation, with an emphasis on medical simulation.
  • qu3e (github qu3e) - Lightweight and Simple 3D Open Source Physics Engine in C++.

Python

  • PyDy (github) - A tool kit written in the Python programming language that utilizes an array of scientific programs to enable the study of multibody dynamics.
  • trep (github) - Python module for modeling articulated rigid body mechanical systems in generalized coordinates.
  • Aikido (github aikido) - A C++ library for solving robotic motion planning and decision making problems.
  • CuiKSuite - A set of applications to solve position analysis and path planning problems with applications mainly to robotics, but also to molecular biology
  • HPP (github) - Humanoid Path Planner: a C++ Software Developement Kit implementing path planning for kinematic chains in environments cluttered with obstacles.
  • MoveIt! (github moveit) - State of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation.
  • OMPL (bitbucket, github ompl) - The Open Motion Planning Library.

Motion Optimizer

  • trajopt (github) - A software framework for generating robot trajectories by local optimization.

Nonlinear Programming Libraries

  • CasADi (github casadi) - A symbolic framework for algorithmic (a.k.a. automatic) differentiation and numeric optimization
  • Ceres Solver (github ceres-solver) - A large scale non-linear optimization library . Ceres Solver has been used in production at Google for more than four years now. It is clean, extensively tested and well documented code that is actively developed and supported.
  • Ipopt (github Ipopt) - Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale ​nonlinear optimization.
  • NLopt (github nlopt) - NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.
  • SCS (github scs) - SCS (Splitting Conic Solver) is a numerical optimization package for solving large-scale convex cone problems, based on our paper Conic Optimization via Operator Splitting and Homogeneous Self-Dual Embedding.
  • 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 (github repos) - A set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project.
  • YARP (github) - A library and toolkit for communication and device interfaces, used on everything from humanoids to embedded devices.
  • Cartographer (github cartographer) - A system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
  • DSO (github dso) - DSO is a novel direct and sparse formulation for Visual Odometry.
  • LSD-SLAM (github lsdslam) - LSD-SLAM is a novel approach to real-time monocular SLAM. It is fully direct (i.e. does not use keypoints / features) and creates large-scale, semi-dense maps in real-time on a laptop.

The comparisons are moved to COMPARISONS.md.

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

CC0