About Me

I love to bring robots to life. There's something awesome about turning a pile of electronics, hardware, and software into something almost alive.

I was previously a PhD student with the Computer Science Department at the University of Albany. I worked at the Institute for Informatics, Logics and Security Studies (ILS). Along the way I founded Vanadium Labs LLC, which produced low-cost robot controllers and open-source software. When I realized that "making robots less expensive and more awesome" was not a justifiable research goal, I left Albany to work at Willow Garage, a world-class robotics place (for lack of a better word). These days I'm working on my latest robotics project, Unbounded Robotics.

Actively(ish) Maintained Projects

Maxwell 2011-2013

Maxwell is a low-cost Mobile Manipulator, originally built as part of my master's thesis. The robot uses a larger 16"x16" version of the earlier Armadillo base with motors that support about 20lbs of payload at speeds of up to 0.5m/s. There are mounting holes for a small Hokuyo laser on top of the base and a depth sensor on the pan/tilt head (originally a Kinect, later an Asus Xtion).

Maxwell's original arm was constructed from 2 EX-106 (shoulder lift and elbow flex), 2 RX-64 (shoulder pan and wrist flex), and 3 AX-12s (one for wrist roll, and two to form a gripper). In 2012, the arm was upgraded to MX-64 for the shoulder pan, shoulder lift, elbow flex, and wrist flex. The move to MX-series servos greatly improved the wiring situation. In early 2013, a shoulder roll joint was added using an additional MX-64, allowing easier use of the new ROS MoveIt framework.

His central column originally consisted of 3 sections of 8020 aluminum support, allowing all pieces to break into lengths under 20" long, allowing Maxwell to be disassembled and put into a reasonable size Pelican case for shipping. In late 2011, I added a torso lift joint using a 20" linear actuator, and since then, Maxwell has been less easily moved around.

Maxwell uses the ArbotiX ROS drivers. He competed in the 2011 AAAI Small Scale Manipulation Challenge (playing chess) and won first place.

I've made a number of blog posts detailing Maxwell.

SMALdog (Sorta-Maybe-Almost-Littledog) Fall 2009

I've always been interested in walking robots. SMALdog is an interesting variation on the many Issy-like walkers I've built, as it is more of a mammalian leg structure. I hope to someday built a larger version of SMALdog to enter in a RoboMagellan contest. In the meantime, check out this platform jump.

  • Pocketsphinx for ROS - I wrote a ROS package for using pocketsphinx (using gstreamer modules for audio capture and segmentation).
  • Neato XV-11 on ROS - ROS drivers for the very awesome, laser-equipped XV-11.
  • STM32 Resources - makefiles, libraries and other stuff for the STM32 Cortex-M3 and M4 processors.
  • ar_kinect - an improved, 3D-point based Augmented Reality marker dectection package for ROS.

Past Projects

ecto::pcl Summer 2011

While an intern at Willow Garage, I developed PCL bindings for Ecto, a computer vision and perception framework under development at that time. ecto::pcl allows you to easily connect up high-performance 3D perception pipelines in just a few lines of Python.

Mini-Max Summer 2011

There are about half a dozen Mini Maxes running around across the United States. This small platform is a bit like a TurtleBot, but with an arm, and a better head location. The ArbotiX used for the arm also allows the robot to have 2 "demo" buttons. There are more photos of Mini Max on my blog.

rosserial Summer 2011

While an intern at Willow Garage, my first project was rosserial. rosserial is a C/C++ ROS client library for small microcontrollers, such as the Arduino. Check out rosserial on github or the ROS wiki.

PR-Mini Fall 2010

After playing with the Armadillo, I decided to build a larger robot with larger arms. Naturally, I chose to build a 60% scale version of the Willow Garage PR2. This is a project I never really showed off, because I never quite finished it. I got as far as making arms move (under ROS of course) and running the ROS navigation stack, but never actually got grippers installed.

In the end, the robot was quite overweight for the motors -- nearly 45lbs of laser cut ABS and 8020 aluminum rail. Each arm had 7 DOF like the PR2, the shoulder lift joints each used RX-64s with springs to help counterbalance some of the load, the elbows were grossly undersized RX-24s that liked to overheat after about 10-20 minutes of operation. I eventually scavenged a number of parts off this robot for Maxwell, which was far more portable.

Armadillo Summer 2010

The Armadillo was a short-lived ArbotiX-based mobile manipulator. It's 10"x10" base would eventually be increased to 16"x16" and re-used in the design of Maxwell. The ArbotiX-ROS interface code eventually became the basis of the modern ROS wrappers for the ArbotiX. While I never did get around to much manipulation, this platform did produce a number of maps

Nelson Spring 2010

Nelson was a prototype "social" robot I built while at the University of Albany.

He consisted of 21 degrees of freedom. An 8-servo head allowed independent control of eyebrows, lips, and eye yaw. The eyes had a coupled pitch servo as well as a coupled eyelid servo. Two 4-servo arms afforded a range of gestures and pointing. A 3-servo neck allowed several configurations of head gesturing, as well as a wide pan and tilt range. Nelson's differential drive base allowed him to navigate his environment.

Nelson was originally controlled using the Tekkotsu robotics package, but was also then my first platform for ROS development. His construction and usage were detailed in a 2011 SIGCSE paper.

Issy 2009-2010

Issy was a small walking robot, with numerous configurations over time. Issy was built around the original ArbotiX robocontroller and won Gold in the first Mech Warfare in 2009 and first place in the 2009 Canadian National Robot Games Walker Challenge. Versions of Issy participated in everything from Fire Fighting Contests to Mech Warfare. There are a number of blog posts on the many versions of Issy.

My later focus with Issy was on dynamic gaits, dynamic balance, and terrain adaptation of walking gaits. The feet were outfitted with FSR sensors, and an IMU was integrated. The last version of Issy had 3D printed feet, a FitPC, and stereo camera pair.

REX 2009

REX was my first PC-based robot. He was built on a Zagros Robotics REX-14 base, from which he derived his name. The motors were capable of 20cm/sec and had incredibly good odometry. On top of his 2-ft neck was a two-axis pan/tilt head, using my first AX-12 servos.

A number of sonar and IR sensors were wired to a RoboDuino, which pushed 20hz updates to the PC. The motor/servo controller was a separate board that I assembled from an ATMEGA324P and a Pololu motor driver. This board did closed-loop PID for speed control of the two wheels. While I had been using Tekkotsu in the University lab, I attempted to write my own framework for this robot, called PyBotix.

Crater Spring 2009

This stupid little $118 robot is the prime example of why you should Keep It Simple Stupid. Intended only to compete in the "low-cost award" category, Crater won the Non-Kit Senior Division at the 2009 Trinity College Fire Fighting Home Robot Contest. This is typically the most competitive league at the contest, but this slow robot was the only one to complete all 3 runs in 2009. He won with an impressively high score of 189.708 seconds... there have been years with scores of under 1 second. I've posted code and tutorials on Fire Fighting competition robots.

Little Green Machine and Green Machine Reloaded Spring 2009

The Green Machine Reloaded (pictured left) won second place in the 2009 Robogames Fire Fighting competition, after failing to complete any runs at Trinity in 2009. His predecessor, the Little Green Machine won the 2008 Canadian National Robot Games fire fighting competition. With GMR, I created a custom controller board to clean up the ratsnest of wires that had existsed on the LGM. GMR was also slightly smaller and faster, and had a few less sensors since the head could pan. Otherwise, the robots were very similar. The software used was quite similar to that of Crater.

Xr-B3 2008

Xr-B3 was my last small table-top sized mapping robot. He was built around a custom controller board using an ATMEGA324 (the ArbotiX is derived from this board). His mapping software used a very rough metric map. Because of his small memory size (only 2k of ram), the metric map could only be a small rolling window (about 6ft x 6ft). A simple distance metric was then used to extract a topological map from the local metric map, as the topological data could be stored more efficiently. The sensor update algorithm was based on Histogram In-Motion Mapping (HIMM).

Other Software & Stuff

Awards and Such

Copyright 2008-2013 Michael E. Ferguson