Robotics Toolbox

Introduction

This, the tenth release of the Toolbox, represents over twenty years of development and a substantial level of maturity.  This version captures a large number of changes and extensions to support the second edition of my book “Robotics, Vision & Control”.

For the first edition please go to this site to obtain the ninth release.

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.

tripleangleThe toolbox contains functions and classes to represent orientation and pose in 2D and 3D (SO(2), SE(2), SO(3), SE(3)) as matrices, quaternions, twists, triple angles, and matrix exponentials. 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.

The Toolbox uses a very general method of representing the kinematics and dynamics of serial-link manipulators as MATLAB®  objects –  robot objects can be created by the user for any serial-link manipulator and a number of examples are provided for well known robots from Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm.

The toolbox also supports mobile robots with functions for robot motion models (unicycle, bicycle), path planning algorithms (bug, distance transform, D*, PRM), kinodynamic planning (lattice, 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 quadrotor flying robot.

Advantages of the Toolbox are that:

  • the code is mature and provides a point of comparison for other implementations of the same algorithms;
  • 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;
  • since source code is available there is a benefit for understanding and teaching.

This Toolbox, the Robotics Toolbox for MATLAB,  is different to the MathWorks’s own Robotic Systems Toolbox.  Hear a bit more about how this came about in this video.


Gallery


Installing the Toolbox

There are two versions of the Robotics Toolbox:

  • RTB9.10, the last in the 9th release is what is used in Robotics, Vision & Control (1st edition) and the Robot Academy.
  • RTB10.x is the current release and is used in Robotics, Vision & Control (2nd edition)

both are available for installation using one of three installation methods:

  1. Direct access to a shared MATLAB Drive folder (for MATLAB19a onward)
  2. Download a MATLAB Toolbox install file (.mltbx type), this is the latest version from GitHub
  3. Clone the source files from GitHub

Install from shared MATLAB Drive folder

This will work for MATLAB Online or MATLAB Desktop provided you have MATLAB drive setup.

Note that this includes the Machine Vision Toolbox (MVTB) as well.

  1. Click on the appropriate link below and an invitation to share will be emailed to the address associated with your MATLAB account:
  2. Accept the invitation.
  3. A folder named RVC1  or RVC2 will appear in your MATLAB drive
  4. Using the MATLAB file browser to navigate to the folder RVCx/rvctools and double-click the script named startup_rvc.m

Note that this is a combo-installation that includes the Machine Vision Toolbox (MVTB) as well.

Install from .mltbx file

This installation includes the Robotics Toolbox for MATLAB and the required Spatial Math Toolbox.

  1. Download the following file which is the latest build on GitHub
  2. From within the MATLAB file browser double click on each file, it will install and configure the paths correctly
  3. Run

    >> rtbdemo

  4. Run the demo to see what it can do

>> rtbdemo

RTB10.4.mltbx

 

GitHubClone source from GitHub

From the command line clone these three repos:

git clone https://github.com/petercorke/robotics-toolbox-matlab rtb
git clone https://github.com/petercorke/spatial-math smtb
git clone https://github.com/petercorke/toolbox-common-matlab common

Then inside MATLAB add these folders to your path:

>> addpath rtb common smtb

This will work for just the current session.  You can repeat this command every session, automate it by adding it to your MATLAB startup.m script, or use pathtool
to save the current path configuration away for next time.


Documentation

  • The book Robotics, Vision & Control, second edition (Corke, 2017)  is a detailed introduction to mobile robotics, navigation, localization; and arm robot kinematics, Jacobians and dynamics illustrated using the Robotics Toolbox for MATLAB.
  • The manual (below) is a PDF file is a printable document (over 400 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.
  • The Toolbox documentation also appears in the MATLAB help browser under Supplemental Software.

RTB manual

 

Related publications

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

  • P.I. Corke, “Robotics, Vision & Control”, Springer 2017, ISBN 978-3-319-54413-7.  [bibtex]

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

  • 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]
  • P.I. Corke, “A Robotics Toolbox for MATLAB”, IEEE Robotics and Automation Magazine, Volume 3(1), March 1996, pp. 24-32.  [PDF]
  • 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.


Who’s using it


Toolbox history

The robotics toolbox started as a bunch of functions to help me during my PhD study.  The first release was in 1995 along with the first published paper. After that were a number of maintenance releases to track changes to MATLAB, particularly the introduction of objects. The latest release extends the functionality to cover modern robotics, mobile ground robots (control, localization, navigation) as well as quadcopter flying robots.

The release dates were:

  • v4 August 1996
  • v5 April 1999, first with objects
  • v6 April 2001
  • v7 April 2002, MEX files, Simulink models and modified Denavit-Hartenberg support.
  • v8 December 2008, first with classdef object syntax
  • v9 September 2011, for Robotics, Vision & Control, 1st edition
    • Download it from here in zip format (.zip).
  • v10 June 2017, for Robotics, Vision & Control, 2nd edition