Research Scientist, self-proclaimed Geek, Code Writer
Sep 17 2011

See you at IROS 2011

The Intelligent Robots and Systems (IROS) conference this year is going to be loaded with great presentations and interesting discussions. Willow Garage is organizing a number of events, including the PR2 Workshop, as well as a technical tour. PCL will be present en pleine forme with its second tutorial. Be there if you care about 3D point cloud perception! ;)


Jul 8 2010

PR2 + Beer

Done!!! Willow Garage proudly presents the first open source “beer fetching app” for robots! :)

Part of a 1-week project, together with a few of my colleagues, we programmed the PR2 robot to:

  • navigate and find a refrigerator
  • open its door by locating the fridge handle
  • position the robot’s manipulators so that the door doesn’t close while grasping things inside the fridge
  • automatically identify the types of beer available in the fridge (we trained models on about 9 beers - training involves simply storing a picture of the beer bottle you want to identify in a directory)
  • determine the types of beer the user selected from a web page, compute grasping points, move the arms and grasp them, and then move the beers onto a storing rack that we installed on the robot
  • close the fridge door
  • navigate the the delivery point selected by the user on the web page
  • identify people faces and perform delivery/hand-off beer + bottle opener
  • wait for bottle opener and resume!

Optionally, the robot can open the beer too! :)

The entire source code is available at:
https://code.ros.org/svn/wg-ros-pkg/stacks/pr2_drinks/trunk/ .

If you find it useful, PLEASE let us know! Obviously this app is “powered by PCL;-)

You can read our entire blog entry here: http://www.willowgarage.com/blog/2010/07/06/beer-me-robot. Cheers!

Edit: I just noticed that we got picked by Slashdot. Some of the comments posted are pretty funny.


May 21 2010

IROS 2010 - problem solving

IROS 2010 workshopFor the upcoming IROS 2010 in Taipei, Taiwan, we decided to take it up a notch. :) Together with my colleagues Caroline Pantofaru, Gary Bradski, Wolfram Burgard, Trevor Darrell, Kurt Konolige, Nassir Navab, and Andrew Ng, we are organizing a different breed of a workshop… “Defining and Solving Realistic Perception Problems in Personal Robotics” will be all about nailing down some of those hard problems in perception that have been already solved by some of us/you, and hopefully sharing them to the rest of the community.

There are two main differences between the usual traditional workshops and this one:

  • in the next few days, we will try to make available training and test datasets for two specific problems that the robotics community is now facing: 1) rigid object recognition and 2) people detection. We encourage submissions that can show results against these datasets. Submissions presenting similar problems using different data sources are obviously welcomed as well.
  • validation of results: the organizing committee is eager to accept submissions that can show results that are reproducible. To do that, for the experimental datasets presented above, we will release a test set a few hours before the workshop. Participants are encouraged to try their algorithms/models on the test set (after have trained on the training set provided above). We aim at awarding the participants who manage to show accuracy results > 95% on the test set. We also encourage submissions that are willing to share their results as open source to the robotics community, and are willing to do a live demo on site.

We hope to see you all in Taiwan! With all these exciting workshops, we’re sure IROS will be awesome!


May 19 2010

IROS 2010 workshop

 IROS 2010 workshop: Semantic Mapping and Autonomous Knowledge Acquisition

IROS 2010 workshop: Semantic Mapping and Autonomous Knowledge Acquisition


Our IROS 2010 workshop proposal got accepted, so see you in Taiwan! The proposal was a joint effort between Dirk Holz, Tom Duckett, and myself. We already set up the web page, so feel free to check it out at Semantic Mapping and Autonomous Knowledge Acquisition.


May 18 2010

PCL :: Point Cloud Library

This is a post on one of my current projects (that seems to keep me up late these days) called PCL, short for Point Cloud Library. First, thanks to everyone that e-mailed and expressed interest on helping out to develop PCL faster. We were pleasantly surprised at ICRA to see how many of you consider this important, and I was personally overwhelmed by some of the e-mails that I received after meeting with you. Again, sincerely thank you!

Because not a lot of people know why we are doing this or how this started, here’s a few random bits on PCL…

  • PCL is a complete open source software package built as part of ROS, which stands for Robot Operating System/Robot Open Source. If you don’t know what ROS is yet, don’t worry, you will soon. We’re growing bigger everyday, and adding more functionality that will make your robots go “wheeeee” sooner than you think. :) Check out a few of them today to see them moving around, picking up objects, or simply just acting cool. ROS is a community driven open source effort (supported by Willow Garage) and the best way to think about it is a massive collection of tightly integrated software packages that enable robotics research and development. There’s probably over 100 useful packages in there, including OpenCV and OpenRave so don’t just take my word for it, go check it out yourself!
  • PCL was created as a successor to an earlier attempt of designing PointCloud data types, structures and algorithms that proved to be inefficient. Those days are gone now, and we’re proud to announce PointCloud…2. Yes, our new underlying data type that represents point cloud data is _really_ called PointCloud2. Call it an uninspired day to name things if you wish. PointCloud2 was designed with PCL in mind (or vice versa - same thing ;), and supports alignment (e.g. SSE), has a compact data size, and has a lower computational overhead in general (especially when used with nodelets - more on that later).
  • Because we want PCL to become for 3D and point cloud data processing what OpenCV is for 2D image processing, we are developing a large number of algorithms for operations such as: filtering, downsampling, 3D feature estimation, registration, surface reconstruction, segmentation, and many more, into PCL. To make things flexible and efficient on the long run, we designed PCL as a fully templated C++ library, with an Eigen backend, and lots of Boost goodies. Yes, porting it to an Android (or whatever) might be a bit of a challenge, but we’ll worry about that later. Right now, we just want robots to perceive and understand their surrounding environment better. The “robot sharing a cluster of cell phones” app will come naturally once we manage to correctly identify all the cell phones in a building ;)
  • We try to use explicit parallelization where possible in PCL, via OpenMP and TBB. We try to avoid parallelizing everything implicitly, because saving CPU cycles on those extra cores that your computer might have is a good thing ®. Basically you want to know when something is going all “parallel” and eating up all your resources on a robot. We ran into decent issues in the past, and learned a valuable lesson. I think.
  • Because we know that learning something new is hard, we’re trying to help you out. There’s documentation, API documentation, tutorials, videos, and more. We already have examples for you on how to do object recognition, and environment modeling, to name a few. And you need to understand that we just started. PCL is roughly 3-4 months old, give or take.

There’s lots more to be said, but for now, just go check it out! If you’re asking yourselves why bother, well… why not? It’s open source, it’s fast, and it’s easy to use (or so we hope). If you don’t like it, just e-mail us and we’ll fix it for you. Yup, just like that!

Here’s a teaser for one of the many things that can be done as of today with PCL. Though the video was generated before PCL was conceived, all the algorithms that are needed to obtain these results are present in PCL. In fact, we’ll create a tutorial soon to show you how to do it too in case you get stuck.

Finally, don’t forget to check out the slides from our class at Stanford for more information about PCL and point clouds. I’ve also uploaded my ICRA 2010 PCL talk/presentation slides here.