Robotics Toolbox

 

Introduction

This, the ninth release of the Toolbox, represents over fifteen years of development and a substantial level of maturity.  This version captures a large number of changes and extensions generated over the last two years which support my new book “Robotics, Vision & Control”.

The Toolbox has always provided many functions that are useful for the study and simulation of classical arm-type robotics, for example such things as kinematics, dynamics, and  trajectory generation. The Toolbox is based on a very general method of representing the kinematics and dynamics of serial-link manipulators.

These parameters  are encapsulated in MATLAB ®  objects -  robot objects can be created by the user for any serial-link manipulator and a number of examples are provided for well know robots such as the Puma 560 and the Stanford arm amongst others.  The Toolbox also provides functions for manipulating and converting between datatypes such as vectors, homogeneous transformations and unit-quaternions which are necessary to represent 3-dimensional position and orientation.

This ninth release of the Toolbox has been significantly extended to support mobile robots.  For ground robots the Toolbox includes standard path planning algorithms (bug, distance transform, D*, PRM), kinodynamic planning (RRT), localization (EKF, particle filter), map building (EKF) and simultaneous localization and mapping (EKF), and a Simulink model a of non-holonomic vehicle.  The Toolbox also including a detailed Simulink model for a quadcopter flying robot.

Advantages of the Toolbox are that:

  1. the code is quite mature and provides a point of comparison for other implementations of the same algorithms;

  2. the routines are generally written in a straightforward manner which allows for easy understanding, perhaps at the expense of computational efficiency. If you feel strongly about computational efficiency then you can always rewrite the function to be more efficient, compile the M-file using the Matlab compiler, or create a MEX version;

  3. since source code is available there is a benefit for understanding and teaching.


Downloading the Toolbox

  1. Download it from here in zip format (.zip).

  2. The Toolbox is tested with MATLAB R2011a. 

  3. To install the Toolbox simply unpack the archive which will create the directory (folder) rvctools, and within that the directories robot, simulink, and common.

  4. Adjust your MATLABPATH to include rvctools

  5. Execute the startup file rvctools/startup_rvc.m and this will place the correct directories in your MATLAB path. 

  6. Run the demo rtbdemo to see what it can do

  7. To get the MEX version of rne visit the folder rvctools/robot/mex and follow the directions in the README file



Documentation

  1. The book Robotics, Vision & Control (Corke, 2011)  is a detailed introduction to mobile robotics, navigation, localization; and arm robot kinematics, Jacobians and dynamics illustrated using the Robotics Toolbox for MATLAB.

  2. The manual robot.pdf is a printable document (around 100 pages).  It is auto-generated from the comments in the MATLAB code and is fully: to external web sites, the table of content to functions, and the ``See also'' functions to each other.  You can find this in the Toolbox as rvctools/robot/robot.pdf

  3. The Toolbox documentation also appears in the MATLAB help browser.


Related publications

If you like the Toolbox and want to cite it please reference it as:

  1. P.I. Corke, “Robotics, Vision & Control”, Springer 2011, ISBN 978-3-642-20143-1.  [bibtex]

The following are now quite old publications about the Toolbox and the syntax has changed considerably over time:

  1. P.I. Corke, “MATLAB toolboxes: robotics and vision for students and teachers”, IEEE Robotics and Automation Magazine, Volume 14(4), December 2007, pp. 16-17 [PDF]

  2. P.I. Corke, "A Robotics Toolbox for MATLAB", IEEE Robotics and Automation Magazine, Volume 3(1), March 1996, pp. 24-32.  [PDF

  3. P.I. Corke, A computer tool for simulation and analysis: the Robotics Toolbox for MATLAB, Proceedings of the 1995 National Conference of the Australian Robot Association, Melbourne, Australia, pp 319-330, July 1995. [PDF]


Support

There is no support!  This software is made freely available in the hope that you find it useful in solving whatever problems you have to hand. I am happy to correspond with people who have found genuine bugs or deficiencies but my response time can be long and I can't guarantee that I respond to your email.  I am very happy to accept contributions for inclusion in future versions of the toolbox, and you will be suitably acknowledged.


I can guarantee that I will not respond to any requests for help with assignments or homework, no matter how urgent or important they might be to you.  That's what your teachers, tutors, lecturers and professors are paid to do.


You might instead like to communicate with other users via the Google Group called which is a forum for discussion.  You need to signup in order to post, and the signup process is moderated by me so allow a few days for this to happen.  I need you to write a few words about why you want to join the list so I can distinguish you from a spammer or a web-bot.


There is also a frequently asked questions (FAQ) wiki page.



Whos’s using it

  1. Introduction to Robotics (3rd edition), John Craig, Wiley, 2004.  The exercises in this book are based on an earlier version of the Robotics Toolbox for MATLAB.

  2. Robot Kinematics and Dynamics, Wikibooks.


Toolbox ported to other languages

  1. Robotics Toolbox for SciLab, Matteo Morelli

  2. Robotics Toolbox for LabView, National Instruments ported the MATLAB Toolbox to Labview under licence.

  3. Robotics Toolbox for Python, still quite immature (Corke)

  4. Octave.  A large part of release 9 now works with Octave.  There is a folder called octave and follow the instructions in the README to install it.  The classical Robotics Toolbox functions are supported: Link, SerialLink, Quaternion and all the trajectory, angle conversion functions.  None of the mobile robotics functions are covered.  In terms of the RVC book the functions for Chaps 7, 8 and 9 are covered.


Other robotics related software on the web


  1. OpenRAVE, an environment for testing, developing, and deploying motion planning algorithms in real-world robotics applications.

  2. RoKiSim, a Windows-based simulator with 3D models of common robots which can be driven using a virtual teach pendent.

  3. SPACELIB: 3D kinematics and dynamics, C-language and MATLAB. (Legnani, U. di Brescia)

  4. Dynamechs a C++ library for simulating the dynamics of multibody systems

  5. ROBOOP, C++ classes for robot kinematics and dynamics (Richard Gourdeau of École Polytechnique de Montreal)

  6. JRoboOp Java wrapper for ROBOOP from the PRISMA Lab at U. Naples.

  7. Open Dynamics Engine A free, industrial quality library for simulating articulated rigid body dynamics for example ground vehicles, legged creatures, and moving objects in VR environments.

  8. RoboAnalyzer (IIT Delhi)

  9. Orocos (Open Robot Control Software) project(EURON)


Retired or gone missing:


  1. Robotica for Mathematica (Spong, U. Ilinois)

  2. Robot Symbolic Dynamics package for MAPLE (Corke)

  3. MATROBCOM a toolbox for interfacing Matlab to real robots (Pires, U.Coimbra).

  4. ROBOMOSP: Robotics Modelling and Simulation Platform



Toolbox release history

  1. v4 August 1996

  2. v5 April 1999, first with objects

  3. v6 April 2001

  4. v7 April 2002, MEX files, Simulink models and modified Denavit-Hartenberg support.

  5. v8 December 2008, first with classdef object syntax

  6. v9 September 2011


The text of this website [or page, if you are specifically releasing one section] is available for modification and reuse under the terms of the Creative Commons Attribution-Sharealike 3.0 Unported License and the GNU Free Documentation License (unversioned, with no invariant sections, front-cover texts, or back-cover texts).



 
The web page requests some information from you such as your country, type of organization and application.  This is just a means for me to gauge interest and convince myself that somebody out there cares.