Monthly Archives: March 2015

Robotics Also Needs Historians

What would enable to faster progress in robotics research?

Part 2:  Historians

One of the other things that would help us progress faster is a better understanding of what ideas have already been tried.

Trite, I know, and readily apparent, and something that applies across most (all?) scientific domains.  We’re not an established field like Biology or Chemistry, and we’re effectively still at the very beginning of defining the laws and principles that will be our foundations.  If we don’t know what approaches have been tried and failed, and have some sense of why, we won’t be able to define those laws and principles.

There are many researchers without a good sense of the different branches of robotics.  Because we need breadth across disciplines simply to function in robotics, it is easy to lose sight of the fact that we actually need more breadth, rather than less.

Each researcher is focusing on a small part of the whole.  On graph based planning tools, or case based reasoning, or SLAM, or the vacation snapshot problem.

Each researcher’s small part is in a small part of the overall robotics ecosystem.  In the world of path planning algorithms, or the world of long endurance underwater robots, or the world of air robots for agriculture, or the world of industrial robot arms or the world of androids designed to look exactly like humans.

And each of those small parts is in turn a small part of the larger robotics research effort underway around the globe.  Just within the aerial robotics community there are separate subgroups that communicate with each other very little.  The fixed wing agricultural robotics community has little to say to the researchers working on indoor operations with small quadcopters.  The groups contributing to the automation of commercial and military fixed wing aircraft often don’t interact with the medium size rotary wing community.

We have breadth across the disciplines of electrical engineering, mechanical engineering, and computer science, and we recognize that every robot is the result of a group of people each contributing components from their own expertise.  But we often fail to recognize that the field of robotics itself is even broader and more disparate than the disciplines that contribute to it.

And beyond this breadth of current research, there is the depth of historical perspective.

The problem is that the history of a given tendril of robotics may be well understood by its practitioners, but as these vines thicken and mature, they begin to run into problems that were addressed and solved (or at least partially solved) in other tendrils.

For example, the industrial robotics research community broke off from the research community in the 1970s, with the first push to automate factories. In the late 1980s, the research community split as one set of more theoretically-minded researchers focused on developing artificial intelligence and the other, more concerned with practical implementations, focused on developing systems that would work in the physical world, while the industrial robotics community still saw themselves as the core of the robotics community.  In the intervening thirty years, the industrial robotics community has achieved significant development and penetration into industrial operations, but has largely failed to recognize the huge strides made in the less rigorous autonomous mobile robotics community, and the similarly huge strides made in the more rigorous artificial intelligence-based robotics community.  Often, instead of taking advantage of this progress, they are instead rediscovering algorithms originally developed in the late 1980s in the reactive robotics community.  Very few researchers know the history of work done outside their own specialties, and their own systems suffer as a result.

Better awareness of the history of robotics as a whole would prevent researchers from duplicating approaches and algorithms without realizing it and allow us to benefit from all the work done in the past.  We need courses, or textbooks, or webisodes – something that will allow newcomers and the experienced alike to learn the history of work that might apply.  We need historians to curate that information and make it available, to analyze it and understand how the pieces fall together, in order to define the principles behind the robots that work.

Robotics Needs Librarians

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.