- The Robotics Toolbox for MATLAB®, Machine Vision Toolbox for MATLAB and Spatial Math Toolbox for MATLAB will reach end of life in January 2022. The source code will remain open and free (as in speech), just no longer maintained.
- There are new toolboxes in Python, available now, which provide much of the functionality of the toolboxes listed above.
- There will be two future editions of the book Robotics, Vision & Control: one supported by MathWorks robotics and computer vision toolboxes, and one supported by the new Python toolboxes.
The first version of the toolbox was written in 1994, and after various refactorings now exists as three open-source toolboxes:
26 years is an eternity for software and I thank all those who have used them for their interest and kind words. I never expected it to become as big a thing as it did, it started as a small set of simple tools to help me do my PhD research. It has been a real delight to meet so many people (when we used to travel) who have found these tools useful in their robotics career. Thanks also to those who have supported this endeavour, and the very small number of people who have contributed code.
It has always been ironic that these tools are free (as in beer) but you need to have paid software, MATLAB, in order to run it. I love MATLAB and have had a long and fruitful engagement with The MathWorks, and that will continue into the future. MATLAB is an important tool in engineering and engineering education. Octave was always potentially a solution to this dilemma, and while I admire what the Octave people are trying to do, it’s just never been up to running these toolboxes, mostly through differences in the class and graphics subsystems.
Python is increasingly popular for hobbyists, students, industry and researchers. Depending on your source it is the first, second or third most popular programming language on the planet, is free (as in speech) and portable – running on everything from embedded devices (MicroPython) to clusters. It also has a very rich ecosystem of packages and developer tools. Graphics and linear algebra support, key to the toolboxes, is fully featured and mature.
Fun fact: Python 1 was released in 1994, the same year as the Robotics Toolbox for MATLAB.
- It’s not for want of trying! These new toolboxes are my third attempt at doing a port – the earlier attempts fizzled out as I just ran out of energy and time.
- The power of Python 3, the quality and diversity of the ecosystem, and the ubiquity of Python
- The MATLAB toolboxes have a number of limitations, but the prospect of retrofitting the improvements into old code is not very exciting.
- I received funding from a national teaching award that allowed me to hire two research assistants: Jesse Haviland for the robotics toolbox and Dorian Tsai for the machine vision toolbox. They did a lot of the heavy lifting, and without them there wouldn’t be Python toolboxes.
What are these toolboxes?
This is a suite of four toolboxes:
- Robotics Toolbox for Python
- Machine Vision Toolbox for Python
- Spatial Maths Toolbox for Python
- Block diagram simulator for Python, which provides a minimalistic programmatic approach to block diagram modelling suitable for educational purposes.
They all run on Python 3.6 or better. A tutorial introduction to the Robotics Toolbox and the Spatial Maths Toolbox can be found in this paper (which is a bit outdated in parts now), or this more uptodate online documentation.
- This thing is my hobby, I do it in spare hours – I am not a corporation. To free up time for things I would prefer to be doing, such as Python toolboxes and book writing, something needs to give.
What won’t change
- The Toolboxes will remain on GitHub for as long as GitHub exists.
What will change
- “Support” will ramp down significantly during 2021.
- From 2022, I won’t be doing any support via GitHub issues, the Google Group or direct email. To be honest, I am rather tired of debugging installation issues for people, it is just not interesting.
- I won’t be doing updates, so over time parts of the code will stop working as the MATLAB language and functions slowly mutate.
- I won’t be handling pull requests
There is an opportunity for anybody who would like to step into the fray to either maintain their own fork, or to become a collaborator on the existing repositories. Contact me if you have a serious interest in being that person.
Quite a lot is planned actually.
The split books
2021 will see the release of a two-book version (they can be bought separately):
- Robotics & Control (essentially chapters 1-9 of RVC2)
- Machine Vision (essentially chapters 10-14 of RVC2)
These books have errata corrected, but apart from changes to support the restructuring this is not a new edition. They are based on the existing open-source MATLAB toolboxes.
Third edition in Python
Robotics, Vision & Control
Fundamental algorithms in Python
This is my big project for 2021, but won’t be published till late 2022. This has been an aspiration for many years, but I never thought I’d get to it given the sheer amount of work involved. Having workable versions of the Python toolboxes is the impetus that I needed.
The RVC book will be redone using Python examples throughout, as well as some new content, reframing some sections, and of course correcting errata. The Python toolboxes will be finessed while I write – the book will be their first major use case. All code examples will change, as will most of the figures which are generated by code. All chapter code will be available as Jupyter notebooks. This is a shed load of work…
Third edition in MATLAB
Robotics, Vision & Control
Fundamental algorithms in MATLAB
This is my second big project for 2021, but again won’t be published till late 2022. The RVC book will be redone using MathWorks’ toolboxes rather than my own toolboxes. These include Robotics System Toolbox, UAV Toolbox, Navigation Toolbox, Sensor Fusion Toolbox, Computer Vision Toolbox, Image Processing Toolbox. The thinking being, that if you have access to MATLAB you are likely to have access to the standard toolboxes as well – this is particularly true at universities. The coverage of those toolboxes is different to my own toolboxes, so the topics covered by this edition of the book may change to a minor extent. The book will also have some new content, reframing of some sections, and corrected errata. This is also a shed load of work and for this book I will be joined by two co-authors from MathWorks.
All chapter code will be available as LiveScripts. Using some advances with MATLAB Online I am hoping that all code examples in the book can be executed simply and directly in the cloud.