RomaTeng / awesome-robotics-libraries

:sunglasses: A curated list of robotics libraries and software

Home Page:http://jslee02.github.io/awesome-robotics-libraries/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Robotics Libraries

A curated list of robotics simulators and libraries.

Table of Contents

Simulators

Free or Open Source
  • AirSim - Simulator based on Unreal Engine for autonomous vehicles [github AirSim]
  • ARTE - Matlab toolbox focussed on robotic manipulators [github 4rtur1t0/ARTE]
  • Gazebo - Dynamic multi-robot simulator [bitbucket]
  • GraspIt! - Simulator for grasping research that can accommodate arbitrary hand and robot designs [github graspit]
  • 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]
  • V-REP - Virtual robot experimentation platform
Commercial

Libraries

Dynamics Simulation

⚠️ 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 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
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 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
Robopy (todo) (todo) Python 3 MIT github adityadua24/robopy
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 rigid, soft, 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

Machine Learning

  • Fido - Lightweight C++ machine learning library for embedded electronics and robotics [github FidoProject/Fido]
  • libdeep - C/C++ library for deep learning [github bashrc/libdeep]
  • OpenAI Gym - Developing and comparing reinforcement learning algorithms [github gym]

Motion Planning and Control

  • Aikido - Solving robotic motion planning and decision making problems. [github aikido]
  • 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 moveit]
  • OMPL - Open motion planning library [bitbucket, github ompl]
  • ROS Behavior Tree - [github miccol/ROS-Behavior-Tree]
Motion Optimizer
  • 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]
  • OctoMap - Efficient Probabilistic 3D Mapping Framework Based on Octrees [github octomap]
  • PCL - 2D/3D image and point cloud processing [github PointCloudLibrary/pcl]
  • voxblox - Flexible voxel-based mapping focusing on truncated and Euclidean signed distance fields [github voxblox]

Optimization

  • CasADi - Symbolic framework for algorithmic differentiation and numeric optimization [github casadi]
  • Ceres Solver - Large scale nonlinear optimization library [github ceres-solver]
  • 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]
  • NLopt - Nonlinear optimization [github nlopt]
  • RobOptim - Numerical Optimization for Robotics. [github roboptim/roboptim-core]
  • SCS - Numerical optimization for solving large-scale convex cone problems [github scs]
  • sferes2 - Evolutionary computation [github sferes2/sferes2]

Robot Modeling

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
  • phobos - Add-on for Blender creating URDF and SMURF robot models [github phobos]

Robot Platform

  • 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]

SLAM

  • 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]
  • 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]
  • SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies [github srba]

Vision

Math

  • Sophus - Lie groups using Eigen [github strasdat/Sophus]
  • SpaceVelAlg - Spatial vector algebra with the Eigen3 [github jrl-umi3218/SpaceVecAlg]

Other Awesome Lists

Contributing

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

License

CC0

About

:sunglasses: A curated list of robotics libraries and software

http://jslee02.github.io/awesome-robotics-libraries/

License:Creative Commons Zero v1.0 Universal