Git Product home page Git Product logo

awesome-robotics-libraries's Introduction

Awesome Robotics Libraries

A curated list of open source robotics simulators and libraries.

Table of Contents

Free or Open Source
Commercial
  • Virtual Robotics Toolkit
  • Webots - A commercial robot simulator used in more than 1200 companies, universities and research centers worldwide for R&D, education and research.

⚠️ 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
Bullet rigid, soft ik, id 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
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
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
Newton Dynamics (todo) (todo) C++ Zlib github newton-dynamics
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 C++, Python LGPL-3.0 github pinocchio
PositionBasedDynamics (todo) (todo) C++ MIT github PositionBasedDynamics
PyDy (todo) (todo) Python BSD-3-Clause github pydy
RBDL rigid ik C++, Python LGPL-3.0 bitbucket
RBDyn rigid (todo) C++, Python LGPL-3.0 github RBDyn
ReactPhysics3d (todo) (todo) C++ Zlib github reactphysics3d
Robotics Library (todo) (todo) C++ GPL-3.0 or BSD-2-Clause github rl
RobWork (todo) (todo) C++ Apache-2.0 SVN (id/pw required)
siconos (todo) (todo) C++, Python Apache-2.0 github siconos
Simbody rigid, molecules id, urdf C++ Apache-2.0 github simbody
SOFA 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

  • OpenAI Gym (github gym) - A toolkit for developing and comparing reinforcement learning algorithms. It supports teaching agents everything from walking to playing games like Pong or Go.
  • OpenAI Gym with DART (github dart-env)
  • 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 joschu/trajopt) - A software framework for generating robot trajectories by local optimization.
Nearest Neighbor
  • Cover-Tree (github Cover-Tree) - A well-documented C++ implementation of the cover tree datastructure for quick k-nearest-neighbor search
  • FLANN (github flann) - Fast Library for Approximate Nearest Neighbors
  • nanoflann (github nanoflann) - C++ header-only library for Nearest Neighbor (NN) search wih KD-trees
3D Mapping
  • OctoMap (github octomap) - An Efficient Probabilistic 3D Mapping Framework Based on Octrees. Contains the main OctoMap library, the viewer octovis, and dynamicEDT3D.

  • voxblox (github voxblox) - A library for flexible voxel-based mapping, mainly focusing on truncated and Euclidean signed distance fields.

Nonlinear Programming
  • 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.
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)
Utility to Build Robot Models
  • phobos - An add-on for Blender allowing to create URDF and SMURF robot models in a WYSIWYG environment. (github phobos)
  • 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.
  • ElasticFusion (github ElasticFusion) - Real-time dense visual SLAM system capable of capturing comprehensive dense globally consistent surfel-based maps of room scale environments explored using an RGB-D camera.
  • Kintinuous (github Kintinuous) - Real-time dense visual SLAM system capable of producing high quality globally consistent point and mesh reconstructions over hundreds of metres in real-time with only a low-cost commodity RGB-D sensor.
  • 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.
  • ORB-SLAM2 (github ORB_SLAM2) - A real-time SLAM library for Monocular, Stereo and RGB-D cameras that computes the camera trajectory and a sparse 3D reconstruction (in the stereo and RGB-D case with true scale).
  • SRBA (github srba) - Sparser Relative Bundle Adjustment (SRBA) is a header-only C++ library for solving SLAM/BA in relative coordinates with flexibility for different submapping strategies and aimed at constant time local graph update. BSD 3-Clause License.
  • ViSP (github lagadic/visp) - A cross-platform library that allows prototyping and developing applications using visual tracking and visual servoing technics at the heart of the researches done by Inria Lagadic team.

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

CC0

awesome-robotics-libraries's People

Contributors

fischerq avatar jslee02 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.