Data vs Reality

I’ve implemented a PID-based closed-loop system to ensure my bot travels in a straight line.

The data says it is going straight. The difference between left and right wheels never really gets above two ticks ( 2/48th of a revolution). However, the bot seems to be deviating quite a bit from straight. Mighty confusing.

Here is the graph of the error and the sum of errors:

Screen Shot 2014-01-30 at 9.39.45 PM

And here is the video of what actually happens:

Obviously there is more than 2/48th of an error going on here.

Another example:

Screen Shot 2014-01-30 at 9.39.34 PM

And what actually happened:

This time the deviation is not so bad but still form the data I would expect much less deviation.

For one of the runs I added more weight to the bot, figuring that traction is an issue.

Data looks the same:

Screen Shot 2014-01-30 at 10.15.30 PMBut no change to the outcome:

I have verified that the encoders are accurate. The PID controller is doing only minor adjustments to the motors. I’m thinking that the issues is to do with traction or vibrations bumping the bot laterally.

My next step is to eliminate all traction issues using a rubber mat of some kind….


Follow Up

As I suspected the issue is traction. The wheels are not ideal for hard surfaces.  I turned over a floor mat with rubber underlining and used that surface to test with. The result was near perfect straight lines:

The masking tape was probably causing some loss of traction too but it was clear, after many runs, that traction is the fundamental issue I’m dealing with. Not too happy about that. Means the chassis system I am currently using is not suited for accurate navigation. One of my goals is to have a  bot that can accurately navigate spaces. I do have a track based chassis that hopefully performs better. Maybe there are softer tires I can get for my current wheels….



  1. My floor is like that as well, and my wheels too. I have used rubber bands around the wheels to gain traction, with a reasonable amount of success (however, I did not properly apply PID control at that time). In my experience, reliably compensating for all different kinds of skidding on dusty floors and bumping on carpet ridges can only be achieved by integrating a compass unit.

    1. Yes, agreed. The reality is that dealing with robotic navigation (or any real world interaction) is non-trivial and requires diverse combinations of techniques in order to achieve reasonable results. The things we take for granted as humans are in fact extremely challenging to duplicate in logic. It’s what makes robotics so interesting… and annoying too.

Comments welcome

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s