Robotics Resources Save

List of commonly used robotics libraries and packages

Project README

LOGO


A curated list of libraries, softwares, simulators for robotics. Recently, I added a list of important books and conferences for Robotics.

bubble

Software License Build Status Stars Contributions


Note: The data in this repository is updated and accurate to the best of my knowledge. In case of any correction, deletion or addition of information please raise an issue. A mail can also be written to [[email protected]].


Table of Contents


Libraries

Python-based libraries
  • Pybotics - python based library for roboti kinematics and calibration. It is mainly designed to work on Denavit–Hartenberg parameters principle. [github Pybotics]

  • PyBullet - a python module for physics simulation of robots, loading URDF, SDF, MJCF files etc.[github PyBullet]

  • Pygame - a library for used for game development and creating objects in 2D space.[github Pygame]

  • pclpy 0.11.0 - a library used for creating point clouds for applications related to computer vision, robotics and computer graphics. [github pclpy 0.11.0]

  • collision - this library is mainly used for collision checking in 2D space along with pygame. [github collision]

  • Ropy - A library by Peter Corke based on the paper "Maximising manipulability during resolved-rate motion control,".[githubRopy][Paper]

  • pybotvac - This is an unofficial API for controlling Neato Botvac Connected vacuum robots. [githubpybotvac]

  • pybot - Research tools for autonomous systems using Python. [githubpybot]

  • PyBot - a python module for creating and deploying twitter bots. [githubPyBot]

  • pybotgram - A Telegram Bot written in Python with plugins based in yagop telegram-bot using tg. [githubpybotgram]

  • pyrobottraining- This is a repository that can be used as a tool to teach you about programming an FRC robot using python and the RobotPy WPILib libraries.[githubpyrobottraining]

  • airobot - AIRobot is a python library to interface with robots. It follows a similar architecture from PyRobot. [githubairobot]

  • ropy - A successor to the famous Peter Corke's robotics toolbox, this library is written in python to control robots in a simulated environments. [githubropy]


C++ based libraries
  • MRPT - Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision. [github mrpt]

  • Flexible collision library - this is mainly used for collision checking in 3D space in motion planning. [github Flexible collision library]

  • Trajopt - is a C++ based library by UC berkeley for Motion planning, trajectory optimisation, etc. [github Trajopt]

  • Eprosima - eProsima Fast DDS implements the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium [github Eprosima]

  • Sophus - This is a c++ implementation of Lie groups commonly used for 2d and 3d geometric problems (i.e. for Computer Vision or Robotics applications).[github Sophus]

  • ModernRoboticsCpp - Mechanics, Planning, and Control C++ Library --- The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. [github ModernRoboticsCpp]

  • FIESTA: Euclidean Signed Distance Field (ESDF) is useful for online motion planning of aerial robots since it can easily query the distance_ and gradient information against obstacles. [github FIESTA]


Visualization

  • VTKexamples - a library based on pyhton for collision detection, making 3D meshes etc. [github VTKexamples]

  • Pyglet - a library primarily used for game development and computer graphics applications.[github Pyglet]

  • PyOpenGL - a cross platform library based on python and OpenGL. [github PyOpenGL]


Robot Vision

  • OpenCV - OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products. [githubOpenCV]

  • SimpleCV - SimpleCV is an open source framework for building computer vision applications. With it, you get access to several high-powered computer vision libraries such as OpenCV – without having to first learn about bit depths, file formats, color spaces, buffer management, eigenvalues, or matrix versus bitmap storage. [githubSimpleCV]

  • ViSP - Visual Servoing Platform [github lagadic/visp]


Robot Perception

  • CUDA Visual Library - This library focuses on the front-end of VIO pipelines.[githubCUDA Visual Library]

Motion Planning

  • sparse-rrt 0.0.2 - This package is based on Sparse-RRT project sparse_rrt.The main purpose of this work is to allow running Sparse-RRT planner in python environment.[github sparse_rrt]

  • OMPL - OMPL, the Open Motion Planning Library, consists of many state-of-the-art sampling-based motion planning algorithms. OMPL itself does not contain any code related to, e.g., collision checking or visualization.[github OMPL]

  • MPL - Motion Planning Kit (MPK) is a C++ library and toolkit for developing single- and multi-robot motion planners.Documentaion

  • Robotics Library - The Robotics Library (RL) is a self-contained C++ library for robot kinematics, motion planning and control. It covers mathematics, kinematics and dynamics, hardware abstraction, motion planning, collision detection, and visualization.Documentation

  • SIMOX - The aim of the lightweight platform independent C++ toolbox Simox is to provide a set of algorithms for 3D simulation of robot systems, sampling based motion planning and grasp planning.[github SIMOX]

  • AIKIDO - Solving robotic motion planning and decision making problems. [github aikido]

  • TOPP-RA - Time-parameterizing robot trajectories subject to kinematic and dynamic constraints [github hungpham2511/toppra]

  • The Kautham Project - A robot simulation toolkit for motion planning [github kautham]

  • ROS Behavior Tree - [github miccol/ROS-Behavior-Tree]

  • OCS2 - Efficient continuous and discrete time optimal control implementation [bitbucket]

  • GPMP2 - Gaussian Process Motion Planner 2 [github gtrll/gpmp2]

  • Crocoddyl - Optimal control library for robot control under contact sequence [github loco-3d/crocoddyl]

  • Control Toolbox - Open-Source C++ Library for Robotics, Optimal and Model Predictive Control [github ethz-adrl/control-toolbox]

  • Tesseract - A major planning framework for forward and inverse kinematics. [github Tesseract]

  • MRSL - A search-based planner for quadcoptors in obstacle cluttered environment. [github MRSL]


Graphics Engine/ Environments

  • OpenRave( Open Robotics Automation Virtual Environment) - it focuses on developing and testing motion planning algorithms for robotic applications. It is available in C++, Python. Documentation

  • Webots - It provides a complete development environment to model, program and simulate robots, vehicles and biomechanical systems.[githubWebots]

  • Stage - Stage is a 2(.5)D robotics standalone simulator and can also be used as a C++ library to build your own simulation environment. [githubStage]

  • Player - is one of the most popular mobile robot simulator. [githubPlayer]

  • RoboDK - is a robot simulator which allows programming and simulating any robot online and offline. It is mailny used for industrial applications. [githubRoboDK]

  • Mobile Robot Simulator - Mobile robot simulator in MATLAB.[githubMobile Robot Simulator]


SLAM

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


Other essential packages and libraries

  • ROS - ROS is a meta-operating system for your robot. It provides language-independent and network-transparent communication for adistributed robot control system. [githubRos)]

  • trimesh - a package for loading and making meshes. [githubtrimesh]

  • Tkinter - a package used for visualization. documentation tutorial

  • Pymesh - is a python based rapid prototyping platform for geometric and computer vision applications.[githubPymesh]

  • Mesh -A Processing library for computing convex hulls, delaunay graphs and voronoi graphs from groups of points.[github Mesh]

  • OpenMesh - A generic and efficient polygon mesh data structure. Relocated-to-this [Docs]

  • libigl - A simple C++ geometry processing library[githublibigl]

  • PyGEL - Python library for geometry processing [github PyGEL] [Docs]

  • pmp-library - C++ based library for processing and generating meshes. [githubpmp-library]

  • Delynoi: an object-oriented C++ library for the generation of polygonal meshes [githubDelynoi]

  • Cinolib: a Generic Programming Header Only C++ Library for Processing Polygonal and Polyhedral Meshes[githubCinolib] paper

  • cilantro - A lean C++ library for working with point cloud data.[githubcilnatro]

  • PDAL - Point Data Abstraction Library, is a C++ BSD library for translating and manipulating point cloud data. It is very much like the GDAL library which handles raster and vector data.[githubPDAL]

  • LEPCC - Limited Error Point Cloud Compression, a library written in C++ for point cloud compression.[githubLEPCC]

  • chainer - flexible framework for working with neural networks. [githubchainer]

  • shogun - a machine learning toolbox build on C++. It also supports python. [githubshogun]

  • Apache Spark - Spark is a unified analytics engine for large-scale data processing. [githubApche Spark]

  • Pinocchio - instantiates the state-of-the-art Rigid Body Algorithms for poly-articulated systems based on revisited Roy Featherstone's algorithms. Besides, Pinocchio provides the analytical derivatives of the main Rigid-Body Algorithms like the Recursive Newton-Euler Algorithm or the Articulated-Body Algorithm. [githubPinocchio]

  • Crocoddyl - Contact RObot COntrol by Differential DYnamic programming Library. [githubCrocoddyl]

  • FCL- FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles.. [githubFCL]


Textbooks


Scientific journals


Series of international scientific conferences

Open Source Agenda is not affiliated with "Robotics Resources" Project. README Source: addy1997/Robotics-Resources

Open Source Agenda Badge

Open Source Agenda Rating