Eric Beowulf Martinson
Windows based software for a variety of robot related tasks.
  • Robot Drivers
  • Visual Perception
  • Auditory Perception
Robot Drivers
 Lego NXT (download)
A windows based controller for a Lego Mindstorms NXT robot via bluetooth. This Visual Studio project implements a behavior based controller for moving to waypoint locations in the environment. Commands are given to the robot through a remote terminal open on the computer. Available commands include:
  • Waypoint - move to a global waypoint location in the environment (e.g. 1m by 1m). Global positions assume an origin at the robots start point, unless the global position of the robot has been reset using the relocalize command.
  • Target - move the robot to a local waypoint location, which assumes the current position is [0,0] with no rotation.
  • Rotate - change the robot rotation by some delta degree.
Notes: (1) the bluetooth COMPORT is set manually for each computer, (2) this configuration assumes that motorB is the left wheel, and motorC is the right wheel.
The basic bluetooth communication and C++ NXT library was downloaded from Anders' Mindstorm page.
 iRobot Create (download)
Similar behavior-based controller to that developed for the NXT. This one actually came first :-) Again, the implementation is in Visual Studio for the Windows OS.
1. Tom Wilcox's Create Driver provided the basic serial port communication with the robot.
2. Code from Player/Stage project's Create driver provided a robust method for selecting wheel velocity based on a single vector.
 Simulated Pioneer3-dxe (MRDS v1.5 project)
Behavior based controller for a simulated Pioneer3-dxe robot with SICK LMS in Microsoft's Robotics Developer Studio v1.5. Two different obstacle avoidance strategies have been ported to this platform:
1. Avoid Objects and/or Swirl Objects from Missionlab
2. Vector Field Histograms from Player/Stage


Visual Perception
 Clustering (download)
Uses a color filter to seperate objects of interest from one or more (up to 3) neutral background colors. The remaining areas of the image are clustered together so as to identify cluster centroid and mean RGB color. This software was used with the Lego NXT robot to localize the robot using an overhead camera (X,Y, and Theta) across multiple images, seperating the robot from objects of interest (with specified colors), as well as obstacles.
The project uses OpenCV with Visual Studio 8.
 Marker Localization using the AR Toolkit (download)
Recognizes visual landmarks in the form of AR Markers (left) and localizes the markers in the image relative to the camera. The marker positions were used in combination with a Monte-Carlo clustering algorithm (not provided) to localize the iRobot Create. This work primarily implements a sample marker tracking application of the AR Toolkit, attaching to it a comm interface for extracting recognized markers.

Auditory Perception
 Stereo Microphone Sampling (server) (interface)
Uses the stereo microphone port on the computer to sample two channels simultaneously in Windows. This application assumes that the sampler is a server, which provides samples of arbitrary size upon request to one or more clients using the provided comm interface. The sampler also has the option of implementing a basic FIR low-pass, band-pass, or high-pass filter.
(July 2011) Update - I have also finished an audio server ( download )for Measurement Computing Data Acquisition devices. The universal library package from the company is necessary to use it, but I have used it sucessfully with both their USB-1616HS device and their older PCMCIA DAQ.
 Auditory Math Package (download
A set of C++ libraries used for Auditory robotics research. This includes implementations of published algorithms/classes for:
  1. Sound Localization
  2. Auditory Evidence Grids
  3. Mel Frequency Cepstral Coefficients
  4. Acoustical Ray Tracing
  5. Speaker Recognition based on Gaussian Mixture Models
The same code also contains implementations of basic robotics navigational capabilities such as:
  1. Vector Field Histograms ( adapted from Player/Stage )
  2. Monte Carlo Localization
  3. Shortest Path Planning
This code currently contains only the library itself. I hope to provide examples in the future, but haven't had the time to post it yet. In the meantime, I am happy to answer questions by email. 
 Auditory Awareness (download)
The entire collection of thesis software. Generally pretty useless without a guide, but extensive nonetheless. The fish picture has little to do with the actual program, except that I used it in my defense presentation.