A curated list of libraries, softwares, simulators for robotics. Recently, I added a list of important books and conferences for Robotics.
Pybotics - python based library for roboti kinematics and calibration. It is mainly designed to work on Denavit–Hartenberg parameters principle. [github ]
PyBullet - a python module for physics simulation of robots, loading URDF, SDF, MJCF files etc.[github ]
Pygame - a library for used for game development and creating objects in 2D space.[github ]
pclpy 0.11.0 - a library used for creating point clouds for applications related to computer vision, robotics and computer graphics. [github ]
collision - this library is mainly used for collision checking in 2D space along with pygame. [github ]
Ropy - A library by Peter Corke based on the paper “Maximising manipulability during resolved-rate motion control,”.[github][Paper]
pybotvac - This is an unofficial API for controlling Neato Botvac Connected vacuum robots. [github]
pybot - Research tools for autonomous systems using Python. [github]
PyBot - a python module for creating and deploying twitter bots. [github]
pybotgram - A Telegram Bot written in Python with plugins based in yagop telegram-bot using tg. [github]
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.[github]
airobot - AIRobot is a python library to interface with robots. It follows a similar architecture from PyRobot. [github]
ropy - A successor to the famous Peter Corke’s robotics toolbox, this library is written in python to control robots in a simulated environments. [github]
MRPT - Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision. [github ]
Flexible collision library - this is mainly used for collision checking in 3D space in motion planning. [github ]
Trajopt - is a C++ based library by UC berkeley for Motion planning, trajectory optimisation, etc. [github ]
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 ]
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 ]
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 ]
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 ]
VTKexamples - a library based on pyhton for collision detection, making 3D meshes etc. [github ]
Pyglet - a library primarily used for game development and computer graphics applications.[github ]
PyOpenGL - a cross platform library based on python and OpenGL. [github ]
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. [github]
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. [github]
ViSP - Visual Servoing Platform [github ]
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 ]
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 ]
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 ]
AIKIDO - Solving robotic motion planning and decision making problems. [github ]
TOPP-RA - Time-parameterizing robot trajectories subject to kinematic and dynamic constraints [github ]
The Kautham Project - A robot simulation toolkit for motion planning [github ]
ROS Behavior Tree - [github ]
OCS2 - Efficient continuous and discrete time optimal control implementation [bitbucket]
GPMP2 - Gaussian Process Motion Planner 2 [github ]
Crocoddyl - Optimal control library for robot control under contact sequence [github ]
Control Toolbox - Open-Source C++ Library for Robotics, Optimal and Model Predictive Control [github ]
Tesseract - A major planning framework for forward and inverse kinematics. [github ]
MRSL - A search-based planner for quadcoptors in obstacle cluttered environment. [github ]
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.[github]
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. [github]
Player - is one of the most popular mobile robot simulator. [github]
RoboDK - is a robot simulator which allows programming and simulating any robot online and offline. It is mailny used for industrial applications. [github]
Mobile Robot Simulator - Mobile robot simulator in MATLAB.[github]
AprilSAM - Real-time smoothing and mapping [github ]
Cartographer - Real-time SLAM in 2D and 3D across multiple platforms and sensor configurations [github ]
DSO - Novel direct and sparse formulation for Visual Odometry [github ]
ElasticFusion - Real-time dense visual SLAM system [github ]
fiducials - Simultaneous localization and mapping using fiducial markers [github ]
GTSAM - Smoothing and mapping (SAM) in robotics and vision [github ]
Kintinuous - Real-time large scale dense visual SLAM system [github ]
LSD-SLAM - Real-time monocular SLAM [github ]
ORB-SLAM2 - Real-time SLAM library for Monocular, Stereo and RGB-D cameras [github ]
RTAP-Map - RGB-D Graph SLAM approach based on a global Bayesian loop closure detector [github ]
SRBA - Solving SLAM/BA in relative coordinates with flexibility for different submapping strategies [github ]
ROS - ROS is a meta-operating system for your robot. It provides language-independent and network-transparent communication for adistributed robot control system. [github)]
trimesh - a package for loading and making meshes. [github]
Tkinter - a package used for visualization. documentation tutorial
Pymesh - is a python based rapid prototyping platform for geometric and computer vision applications.[github]
Mesh -A Processing library for computing convex hulls, delaunay graphs and voronoi graphs from groups of points.[github ]
OpenMesh - A generic and efficient polygon mesh data structure. Relocated-to-this [Docs]
libigl - A simple C++ geometry processing library[github]
PyGEL - Python library for geometry processing [github ] [Docs]
pmp-library - C++ based library for processing and generating meshes. [github]
Delynoi: an object-oriented C++ library for the generation of polygonal meshes [github]
Cinolib: a Generic Programming Header Only C++ Library for Processing Polygonal and Polyhedral Meshes[github] paper
cilantro - A lean C++ library for working with point cloud data.[github]
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.[github]
LEPCC - Limited Error Point Cloud Compression, a library written in C++ for point cloud compression.[github]
chainer - flexible framework for working with neural networks. [github]
shogun - a machine learning toolbox build on C++. It also supports python. [github]
Apache Spark - Spark is a unified analytics engine for large-scale data processing. [github]
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. [github]
Crocoddyl - Contact RObot COntrol by Differential DYnamic programming Library. [github]
FCL- FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles.. [github]
H. Asada, J.-J.E. Slotine, Robot Analysis and Control, Wiley, New York, 1986.
G.A. Bekey, Autonomous Robots, MIT Press, Cambridge, MA, 2005.
A.J. Critchlow, Introduction to Robotics, Macmillan, New York, 1985.
J.F. Engelberger, Robotics in Practice, Amacom, New York, 1980.
J.F. Engelberger, Robotics in Service, MIT Press, Cambridge, MA, 1989.
A.J. Koivo, Fundamentals for Control of Robotic Manipulators, Wiley,New York, 1989.
Y. Koren, Robotics for Engineers, McGraw-Hill, New York, 1985.
F.L. Lewis, C.T. Abdallah, D.M. Dawson, Control of Robot Manipulators,Macmillan, New York, 1993.
P.J. McKerrow, Introduction to Robotics, Addison-Wesley, Sydney, Australia, 1991.
R.P. Paul, Robot Manipulators: Mathematics, Programming, and Control MIT Press, Cambridge, MA, 1981.
M.W. Spong, S. Hutchinson, M. Vidyasagar, Robot Modeling and Control, Wiley, New York, 2006.
M. Vukobratovi ́c, Introduction to Robotics, Springer-Verlag, Berlin, Ger- many, 1989.
T. Yoshikawa, Foundations of Robotics, MIT Press, Boston, MA, 1990.