Jonas Schwertfeger | Brown CS
Research & Projects

During my time at Brown University I have been generally working on robotics and applications of machine learning to robotics. In particular, I did research on the problem of Multi-Robot Task Allocation and formulated a solution based on belief propagation. On the more practical side I co-designed and built a cheap but powerful robotics platform based on the iRobot Create. Recently, I implemented an overhead localization system for use in CSCI1480, Brown's introductory robotics class. My current work involves learning grasp strategies using continuous space Markov decision processes.

The SmURV Robotics Platform

Two SmURVs, Dreamy and Greedy to be more precise.

The SmURV platform (Small Universal Robotic Vehicle) is a comparatively cheap and easy to assemble robotics platform for educational, research and hobby purposes. Essentially, the platform consists of an iRobot Create and a small computer mounted on top of it. Due to this very simple design, using components available at any larger electronics store, we are able to build an autonomous robot in a very short amount of time and can focus on the real interesting part: Namely, Making the robot do something exciting! More information on the SmURV.

Wii-Controlled SmURV

Wii-SmURV at iRobot booth at RoboBusiness 2007 in Boston, MA.

For demonstration purposes and, admittedly for fun, I wrote a control program for the SmURV that reads motion signals from Nintendo's Wii Remote (Wiimote) and turns them into steering commands. The controller uses the wiimote library contained in CWiid to access the Wiimote, turns the accelerometer values into motion commands and sends them to the iRobot Create through the Player/Stage robot hardware abstraction framework. Have a look a these two short video clips recorded at the RoboBusiness conference 2007 to see how even a child can control a robot with ease: Video 1, Video 2

You can download the source code for the controller here. In order to compile the code and run the binary you need to have installed the CWiid library (I used version 0.5.03), the Player/Stage library (I used version 2.0.4), and a Bluetooth libray for Linux (e.g. BlueZ Utils version 3.10); for the reason of time I will most probably not be able to help anyone who has issues with getting this code to run.

Multi-Robot Task Allocation

Five robots aligned in a chain-of-sight on a floor map.

Robots are beginning to become affordable for the average person and are entering people's daily life. As the deployment increases, so does the importance of the question on whether multiple simple robots are able to achieve more complex goals through collaboration and how such collaboration should take place. The problem of multi-robot task allocation (MRTA) pertains directly to this issue and asks how a collection of N robots should be allocated to a set of M subtasks such that a common goal is achieved.

Towards these ends we proposed a probabilistic method for distributed multi-robot task allocation, called Multi-Robot Belief Propagation (MRBP). In MRBP each robot computes a probability distribution over the possible subtasks it could be allocated to. These distributions correspond to marginal probabilities of hidden random variables on a Markov random field and are approximated in a distributed fashion using the belief propagation algorithm.

Publication: J. N. Schwertfeger and O. C. Jenkins. Multi-robot belief propagation for distributed robot allocation. In Proceedings of the 6th IEEE International Conference on Development and Learning (ICDL), 2007.

Top-Down Localization


The soccer field.

Top-down view of the four cameras, with overlapping regions.

In 2007 all assignments in CSCI1480, Brown's introductory robotics course, revolved around making SmURVs to autonomously play robot soccer. Amongst a variety of things, this requires each robot to recognize certain objects in its field of view, to localize itself on the field as well as to plan and execute paths. In order to offer the students ground truth with regard to the pose of their robots and the ball, the teaching assistants of that course and I implemented a localization system that uses four Firewire cameras mounted on the ceiling, right on top of the soccer field, to recognize and track objects.

In order to make object recognition and pose estimation easy, the SmURVs have been equipped with augmented reality markers, which due to their distinctive pattern and high contrast allow for robust tracking; the markers are detected using the ARToolKitPlus library and the soccer ball is detected using the CMVision color segmentation library. The localization system features a distributed architecture that allows it to scale up to many more cameras and a much larger field. Essentially, for each camera a single process analyzes the images taken by that particular camera, generate pose estimates for each object in that camera's field of view and sends it to a localization server using UDP/IP. Then, the localization server fuses incoming pose estimates and broadcasts a single data packet containing pose estimates for all objects to the SmURVs. As a consequence of this architecture pose estimates are computed and broadcasted roughly 15 times a second.