Screen Shot 2014-10-17 at 7.54.39 PM

As part of the Blue Block Challenge I’m using the OpenCV library to detect and track objects based on their color only. In the process I created an Mac application to help develop the algorithms.

Screen Shot 2014-10-14 at 3.22.55 PM

While visiting the mini maker faire last month at OMSI, I discovered a local robotics club called PARTS (Portland Area Robotics Society) and managed to attend their most recent meeting – which are all held on the first Saturday of each month. It was perfect timing too, for two reasons: First, the meeting dealt with […]


Now that the first version of NavBot is complete it is time to think about how to scale things up… and an 8 bit Atmel microcontroller is not the answer.

Screen Shot 2014-03-16 at 4.22.07 PM

First true working version of the NavBot.

I show how you can get the code up and running on your own mobile robot, configure and calibrate it for errors and create your own waypoint based path sequences for the Pilot to execute.

Screen Shot 2014-05-06 at 11.32.23 PM

[This is a breakout post for NavBot: Version 1 where I show how to get the NavBot project to run on your own robot.] In a previous post I detailed some of the systematic errors typical for differential type robots and how to correct for them. In this post I’m simply going to show how […]

Screen Shot 2014-05-10 at 12.15.46 PM

How to test and modify the PID coefficients for NavBot’s Pilot.

UMBMark Image

Finally got a handle on dealing with NavBot’s key systematic errors. My ad hoc approach was proving very frustrating. The UMBmark method is simple to perform and gives great results.


Created a new bot better suited for dead reckoning navigation. And the results?


Using the Zumo bot for dead reckoning was proving difficult due to its tracks. Decided to see if the original WallBot with its smaller wheels could perform better at navigation.

Screen Shot 2014-03-07 at 10.27.33 AM

During the development of the NavBot I was forced to deal with and understand the systematic errors (and non-systematic errors) of the Zumo chassis. Maybe I’m expecting too much from a tracked-based dead-reckoning bot.

Screen Shot 2014-03-07 at 11.00.15 AM

Short video of the Pilot’s first movement tests.

It’s alive! Kind of….


An overview of how the NavBot Pilot component works. This is still a work-in-progress but taking on solid form. I plan to explain the internal workings once I have it mostly functioning.

Screen Shot 2014-02-23 at 2.06.45 PM

An overview of the workings of NavBot’s Navigator component.

Screen Shot 2014-02-19 at 8.04.15 PM

Now that the WallBot has functioning wheel encoders I’m eager to evolve it from a simple wall-avoiding robot to one that can autonomously navigate its environment.

First I need to design how the software will work.

Screen Shot 2014-02-14 at 10.53.17 PM

Put together a quick and dirty dead reckoning experiment now that the encoders and PID controller are working. Very happy with the results, even if they are superficial.

Zumo - PID - 2

With the encoders working it’s time to tune the PID controller for driving in straight lines.


Discovered there was an alternate and simpler solution than using Trinket.

Also received a bluetooth module and put it to use.


Finally completed the Zumo build, code and all. It was way more work than I bargained for.

Ended up adding a second microprocessor (The Trinket) to handle sensor and servo functions, implemented an I2C slave and wrangled new interrupt-driven servo code.


Completed the Zumo hardware side and got the encoders working but then hit a road block trying to get the motors to turn…


Get every new post delivered to your Inbox.