What would enable faster progress in robotics research?
Part 1: Librarians.
There are several answers to this question, but one of the most important things robotics needs is the ability to find existing solutions, and one key element of that is providing cataloging tools.
Every robot is built up of bits and pieces of other peoples’ algorithms.
The researchers focused on a given problem know what the state of the art in that area is. But each robot is an assemblage of components – no matter which piece a given researcher is focused on, the rest of the robot must be present in order for that piece to be tested. Unfortunately, no one researcher has time to be an expert in every component of a robot.
If a new SLAM loop closure algorithm needs to be demonstrated and tested on a robot, it will probably utilize a low level controller provided by the manufacturer and a sensory perception algorithm inherited from a previous student. The designer of the loop closure algorithm is unlikely to have time to ensure that every component of his or her robot is using the optimal algorithm for that task, tuned properly for both the robot and the environment.
If the researcher is focused on multi-vehicle cooperation, the obstacle avoidance algorithm is likely to be whatever came with the robot, or whatever might have been installed on the robot by the last graduate student who used it, or the algorithm developed by the last researcher in that lab who worked on that problem, rather than the algorithm most suited for that robot operating in that environment.
Of course, we also need tools that will let us reuse algorithms across robots, and progress is being made in that area, and we need tools that will tune algorithm parameters so that for any given combination of algorithm and robot and environment, the algorithm is providing the best performance possible. But right now, we don’t even know what algorithms are available and which ones are most suited to which applications without extensive research and a good dollop of luck.
Luck oughtn’t to be necessary, but unless you’re an expert in a given area, it’s not always abundantly clear that you have even managed to figure out the correct keywords to let you find the algorithm you’re looking for.
If we go to the ROS archive (http://ros.org) and search for SLAM, we find over 20 packages submitted by 12 people or groups, while “navigation” brings up 11 metapackages and 51 packages, none of which use “SLAM” in their text. There is no way for the non-expert to tell which algorithm he or she should use. “avoid” brings up 12 packages, most of which don’t even implement obstacle avoidance but merely have the word “avoid” used in their descriptive text. Neither “survey” nor “coverage” bring up any results, even though many algorithms exist outside of ROS that address those problems.
There’s a reasonably comprehensive list of MOOS modules available at http://oceanai.mit.edu/moos-ivp/pmwiki/pmwiki.php?n=Site.Modules, but the organization is done by hand and the modules primarily address marine vehicle applications.
The options for compiled code with a reasonable level of certainty that it will work are limited. Even finding algorithms through technical papers is distressingly hit or miss. If you happen to choose the wrong keywords, it’s entirely possible you’ll fail to find the most relevant papers. Non-native English speaking researchers are at a significant disadvantage, and sometimes form clusters of researchers working on problems in parallel with the native English speakers, since they’re using a different set of keywords to describe the same thing. So if you don’t know precisely what keywords to use, you’ll probably find a community of researchers, using the keywords you think are intuitive, with a variety of solutions addressing your problem. You have no way of knowing whether this community represents the state of the art or whether this community believes it represents the state of the art but itself missed the correct keywords.
Even within the English-speaking world, robotics is a parochial discipline. Researchers in one branch of robotics may use entirely different keywords and be entirely ignorant of existing work addressing the problem they’re looking for. Researchers in industrial robotics and researchers looking at problems facing commercial fixed-wing aircraft are unlikely to know what solutions the ground vehicle or the underwater vehicle community have developed. Researchers with a background in controls will assume that any half-decent undergraduate robotics textbook should contain recursive Newton-Euler equations, while researchers with a background in behavior-based robotics still manage to find roboticists that have never heard of Braitenberg vehicles. Without experience in controls, there is no guarantee an artificial intelligence specialist will know to look for recursive Newton-Euler equations to control their robot, and without experience in behavior-based robotics, a controls specialist is unlikely to consider a Braitenberg approach to behavior generation (the exception).
Robotics needs some form of taxonomy or Library of Congress organizing principle so that researchers can find the relevant behaviors and algorithms for their problem and robot.
We need librarians.