For tens of thousands of students globally, over the last two decades, a part of their education involved an open-source software toolkit known as the Robotics Toolbox for MATLAB. This started as a modest collection of tools to help me in my PhD research in the early 1990s. It leveraged MATLAB, at that time a relatively new product, which is a powerful mathematical software environment with great support for linear algebra and graphics.
The Robotics Toolbox for MATLAB added the specialized functions that you need for robotics such as wrangling homogeneous transformations, quaternions, and roll-pitch-yaw angles; as well as core robotics functionality like forward and inverse kinematics, Jacobians, dynamics and trajectories; as well as providing models of many common robots.
Over time it added capabilities for mobile robotics and machine vision, and after various re-factorings it exists today as three open-source toolboxes:
The toolboxes formed the basis of my book Robotics, Vision & Control, now in its second edition (2017), and my free online lessons at the QUT Robot Academy.
Maintaining open-source software is often a thankless pursuit, but I’ve been motivated by many positive messages from users who have benefited from the software. Back in the time when we used to travel to conferences, many people expressed similar sentiments in person and in recent years often captured the moment with a selfie! I never expected it to become as big a thing as it did, and nor did I expect that 26 years later it would still be part of my life.
However, much has changed over nearly three decades. Firstly, MathWorks, the publishers of MATLAB, have developed a comprehensive suite of toolboxes for robotics, navigation, UAVs, computer vision and AI. I have had a long and fruitful engagement with them on this. Secondly, we have seen the explosion of interest in Python, which supports and is supported by, a huge ecosystem of open-source software, and is scalable from embedded computers to high-performance clusters.
2020 was good for reflection and also action. This long-standing body of work now has exciting new impetus and direction.
Firstly, my original toolboxes have been ported to Python. The port has created an opportunity to revisit some, in retrospect, poor design choices, extend capability in interesting directions, and reach a different audience. This pandemic year project would not have been possible without the help of current and former students: Jesse Haviland for the Robotics Toolbox and Dorian Tsai for the Machine Vision Toolbox.
You can find all these on GitHub now: Robotics Toolbox for Python, Machine Vision Toolbox for Python, Spatial Maths Toolbox for Python, as well as a minimalist Block diagram simulator for Python. A tutorial introduction to the Robotics Toolbox and the Spatial Maths Toolbox can be found in the first part of the online documentation.
End of life for old toolboxes
It’s still early days, and there remains functionality to add and bugs to squash. But the initial feedback, as well as GitHub stars and forks, has been very encouraging. The Pythonic approach to robotics and machine vision will be explored in an upcoming third edition of my book.
Secondly, the days of my original toolboxes are clearly numbered since the toolboxes from MathWorks now provide a high-level of functionality. The advantage for users, particularly in educational settings, is that they provide a one-stop-shop for supported robotics functionality.
So, I have declared that the original toolboxes will be end-of-life by January 2022. The old toolboxes, familiar to so many in the field, will remain on GitHub for anybody who cares to continue using them, or who may wish to support them into the future. To cement this transition, I am working with two colleagues from MathWorks as co-authors, on a different upcoming third edition of my book that uses only the supported MathWorks toolboxes.
The toolboxes have had a long and rich life and, for many, were part of their first steps into robotics. I hope these new developments will serve students, teachers, industry and researchers for decades to come.
About the Author
Peter Corke is a distinguished professor of robotic vision at Queensland University of Technology, Director of the QUT Centre for Robotics, and Director of the ARC Centre of Excellence for Robotic Vision. Corke’s research is concerned with enabling robots to see, and the application of robots to mining, agriculture and environmental monitoring.
He’s spent time visiting at Oxford, University of Illinois, Carnegie Mellon University and the University of Pennsylvania. Corke received his undergraduate and Masters degrees in electrical engineering and PhD, all from the University of Melbourne.
He is a fellow of the Australian Academy of Science, a fellow of the Australian Academy of Technology and Engineering, a fellow of the IEEE, former editor-in-chief of the IEEE Robotics & Automation magazine, founding and associate editor of the Journal of Field Robotics, founding multi-media editor and former editorial board member of the International Journal of Robotics Research, member of the editorial advisory board of the Springer Tracts on Advanced Robotics series, member of the board of the International Federation of Robotics (IFR).