A curated list of libraries, softwares, simulators for robotics. Recently, I added a list of important books and conferences for Robotics.
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]].
- Libraries
- Visualization
- Robot Vision
- Robot Perception
- Motion Planning
- Graphics Engine/ Environments
- SLAM
- Some cool repositories
- Other essential packages and libraries
- Textbooks
- Scientific-journals
- Series-of-international-scientific-conferences
-
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 ]
- CUDA Visual Library - This library focuses on the front-end of VIO pipelines.[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.
- Advanced Robotics
- Autonomous Robots
- IEEE Robotics and Automation Magazine
- IEEE Transactions on Robotics
- International Journal of Robotics Research
- Journal of Field Robotics
- Journal of Intelligent and Robotic Systems
- Robotica
- Robotics and Autonomous Systems
- Frontiers in Robotics and AI
- International Journal of Social Robotics
- Soft Robotics
- Science Robotics
- Robotics and Computer-Integrated Manufacturing
- EEE Robotics and Automation Letters
- IEEE/RSJ International Conference on Intelligent Robots and Systems
- IEEE International Conference on Robotics and Automation
- IEEE/RSJ International Conference on Intelligent Robots and Systems
- International Conference on Advanced Robotics
- International Symposium of Robotics Research
- International Symposium on Experimental Robotics
- Robotics: Science and Systems
- ACM/IEEE International Conference on Human Robot Interaction
- Robotics: Science and Systems