The first week of May I was in Anchorage, Alaska at the 2010 IEEE International Conference on Robotics and Automation (ICRA’10). In short, it was an awesome event amidst great scenery, but for my tastes it was way too large and too far away. (The US customs officer even asked me why they decided to hold the event so far away from the rest of the world.)
There were roughly 1,600 registered attendees, so the event was spread out over two big convention centers. All of Anchorage’s hotels were packed with roboticists. It wasn’t long until local cafetarias were playing into this.
More than 2,000 papers were submitted submitted, of which 857 were accepted. While that’s an acceptance rate of only about 40%, it’s still one heck of a lot of papers! Instead of actual paper proceedings we received a booklet called the “Conference Digest”, containing a single slide for each paper. With six slides on each side of each page, this thing is still about the same size as the full proceedings to SoCG or EuroCG. The actual proceedings came on a DVD, and my tablet PC lacks a DVD drive, so I have not been able to look at them yet. But I presume that there is still a lot of space left on the DVD, so I wonder why there is a 6-page limit on the submitted papers. For the initial versions it makes sense, as this reduces the reviewing load, but why not allow larger final versions?
To accomodate all these papers there were thirteen parallel tracks; but really, it felt more like thirteen parallel conferences. Robot-building disciplines like mechanical engineering, electrical engineering, and computer science come together with application areas for robotics such as the life sciences, geology, logistics, and manufacturing. It seems like you could present research on just about any topic (“X”) at ICRA, provided you word it the right way (“X using robots”). Heck, I attended one talk that went into anthropology! While it was nice to get a glimpse of what is happening in other fields, and how they all relate to one another, most speakers assumed the audience already had intimate knowledge of their specific field and its acronyms. I felt a bit left out, most of the time, and wondered whether that described half the audience or just me.
On Monday I attended the workshop on Best Practice in 3D Perception and Modeling for Mobile Manipulation. My main take-away was that we’ve come farther than I thought, and that the state-of-the-art is all freely available as open-source libraries. You just download the ROS robot operating system and OpenCV computer vision library, and you’re all set. In a couple of lines of code you can combine a stereo image into a single image where you know the distance of each pixel to the camera. A bunch more lines and you can build up a fully textured 3D model of the world from a stream of these images, captured as the robot moves around.
Of course, that’s when the tricky part starts of determining what all the objects you are seeing are, and what you should do with them. This is where the open problems are. The rest of the workshop had some talks on these. All were interesting techniques for different kinds of special cases, but we are still nowhere near dealing with the full variety of objects humans deal with on a daily basis.
Tuesday till Thursday were exhausting. A 12-minute talk every 15 minutes from 8:30 to 19:30, except for breaks and the occasional plenary or keynote speakers who had longer talks. The sessions ended earlier on Wednesday because of the conference banquet, but that’s still more than 70 talks I attended. For many of them I only vaguely understood the problem that was being solved, and usually had no idea what the state-of-the-art was and how the presented method improved on it. Still, there were a couple of talks I found really enjoyable.
My own talk was on pushing a disk with a disk-shaped robot, and it turns out there were two more talks on the subject of pushing (though all in different sessions, for some reason). In A Dipole Field for Object Delivery by Pushing on a Flat Surface, Takeo Igarashi presented a very simple and elegant algorithm for the same problem I looked at, and even showed how it worked with actual Roombas. The algorithm cannot (yet?) deal with obstacles, but I had a nice chat with him afterwards about future work. In Dynamic Pushing Strategies for Dynamically Stable Mobile Manipulators, Pushkar Kolhe (how awesomely appropriate is that name?) studied how a differently designed robot should push or pull in order to exert the most force. It turns out that pulling is actually better than pushing.
In Adaptive Multi-Robot Coordination: A Game-Theoretic Perspective, Gal Kaminka talked about a new protocol for moving robots to avoid colliding with each other. They could easily have had the paper accepted after just showing through experiment that their method works, and I would have thought nothing special of the talk. Instead, they went the extra mile in using game theory to also show why the method works.
In Avoiding Zeno’s Paradox in Impulse-Based Rigid Body Simulation, Evan Drumwright explained how physics simulation libraries such as ODE and Bullet get resting contacts wrong, and presents an alternative method that has been implemented in a new physics library called Moby.
My favorite talk actually won the best paper award in its category. In Gesture-Based Human-Robot Jazz Improvisation, Guy Hoffman presented his jam sessions with Shimon, a marimba-playing robot. Rather than play a preprogrammed piece of music, it improvises based on what the human is playing. The result sounds great, and the addition of a head that head-bangs to the beat was a nice touch. It really looks like it gets into the groove!
On Friday morning I went to the workshop on Guaranteeing Safe Navigation in Dynamic Environments. All great talks on how to avoid collisions among moving obstacles, each illustrated with pretty videos. Jur van den Berg showed an especially impressive video on simulating human movement in crowds.
Friday afternoon I attended the tutorial on Real-Time Planning in Dynamic and Partially-Known Domains. It emphasised how almost any planning problem can be reformulated as finding a path in a graph where edges are labeled with a cost and/or probability. The obvious way to do that is using A* search, but I had no idea how many different variants of A* have been developed to deal with different kinds of problems. Almost a dozen of them were explained, having funky names like Fringe-Saving A*, Lifelong Planning A*, and Anytime Repairing A*.
The A* tutorial at the end was actually the first time during this conference that I saw someone use theorems and complexity theory. What’s perhaps a little disturbing is that that actually made me feel relieved, as if I had come home from a long ardous journey through the wastelands. That’s not to say that the other talks at the conference were bad, but they were rather different from the kinds of talks I’m used to. I think computational geometry may have spoiled me a bit in that regard. I’m used to talks with clear, precise definitions and theoretical analyses. It’s easy to forget that in the “real world” one deals with vague concepts and must rely on experimental validation.