Precision of the gopigo3 due to its age

hi everyone,
i’m actually working on a project for my school with the GoPiGo3, and i’ve got an “Old” rover, i wanted to know if the fact that my rover has 2 years or 3 i’m not sure exactly, could affect the accuracy, that i think it’s calculated with the encoders.

i have used the function turn_degrees and forward, in order to do a simple rectangle and the accuracy was really bad, i specified 90deg for the angle.

when i look at demos of the function turn_degrees, and how it’s more precise than with my rover, i asked my self if it doesn’t come from the robot age.

Can anyone give me more explanation about that and about the works of the encoders please.
I used this line to get more accuracy but it still not enough.
gpg.set_robot_constants(63.5, 117) after reading the post of Cyclicalobssessive

1 Like

There is also the fact, that when i run a script in Bloxter that makes the GoPiGo3 move in a rectangle, the accuracy is the worst, so when i’m running the same script in Python, the fact that i can set the robot wheels diameter, is really helping.

But even tho, the accuracy of the robot i’m using in Class sill remains really bad

So my question is, can the age of the robot affect the accuracy supposed to be retrieved by the encoders ?? And is that how the encoders works ?

I’ve bought my own GoPiGo3 and i have really good precision when i use turn_degrees(), I just need to be supported in my theory if i’m not wrong :sweat_smile:

1 Like

IMO no detectable aging effect, period.

But what does affect accuracy over time is dust. I have to clean the floor around the recharge dock each week and the wheels about once a month to ensure good traction or the turns get sloppy by 3 degrees which is enough to cause a docking failure. (Carl has a 7 percent docking failure rate overall, mainly from the stupidity of the “smart charger”, and about 2% fatal docking failure rate from sloppy turns.)

Carl has logged a little over a third of a mile in forward/reverse travel, and the equivalent of 1439 complete revolutions in 905 dockings in 7975 hours of operation in 18 months of “existence “.

On a clean floor and clean wheels, his 180 degree turns were just as accurate the last time I checked as when I first performed the accuracy test after moving the battery pack to the center of the bot.


Woaw, its insane, i feel embarassed with my gopigo when i read what you have done with yours.
I tried a lot of thing and i don’t know why my robot have so much problem with his turn and maybe he got old but he wasn’t used as much as that.

I also moved the battery pack to the center and if i had to give a number, i think that my accuracy failure is about 20%.

One thing that is also annoying, everytime i try to boot the GoPiGo, it takes so much times, about 2 - 3 min to the ligth become green. And when i connect to it, it takes me about 5 minutes more to launch and start to use Jupyterlab. With Bloxter it was faster

I also tried to catch the dps value of the encoder while moving my gopigo my self to restore them after in order to do a good rectangle. I used the gpg.steer() command and i was amazed that while doing the rectangle from the dps value stored, it wasn’t accurate as when i performed the rectangle

1 Like

Not enough wheel “grip” (friction) for this to work.

1 Like

There are many causes of problems, and many approaches to reaching your goal.

Success is a combination of

  • identify problems
  • minimize problems where possible
  • realistic goals

You are showing great ability to investigate aspects of your problem from different angles and with different methods. This is very powerful.

Sometimes we get bogged down in one issue and miss the big picture. I would like to know more about:

  • the goal(s) of your project,
  • your time frame,
  • if it is a team effort,
  • if the goal(s) are fixed already or modifiable
  • if a well documented failure to reach the goals be accepted (as a fallback)
1 Like

Please accept my apologies if this is a stupid question:

Have you actually calibrated the GoPiGo?

Everything else being equal, there are two primary reasons for inaccuracies:
(Number 3 is actually a subset of number 2.)

  1. Traction - grip of the wheels to the floor.
    If the floor is too slick, too uneven, or tilted, accuracy will be affected. Thick pile rugs and other floor coverings can affect accuracy.
    Don’t forget to check the rear wheel for ease and smoothness of travel. Binding will affect accuracy.
  2. Calibration - the relationship between encoder counts and distance traveled/turned.
    In both DexterOS and Raspbian for Robots, there are provisions for providing improved accuracy by calibrating the encoders based on the wheel diameter and wheel spacing - which can vary between individual robots. In fact, there is a small - but distinct - difference in wheel spacing between the old and new robots because the plastic wheel spacers are different thicknesses.
  3. You can check spacing between the little encoder transistors and the magnetic wheel. They should be close, (but not touching), and reasonably evenly spaced.

Mine, which is a newer version, required significant calibration adjustments before I could get any kind of reasonable accuracy.

Let us know what happens.

1 Like

Hi Bernie,
age shouldn’t be an issue. The first time I had a robot really misbehave like this, I had some of my (long and dead) hair stuck in a wheel! Yikes! Or maybe it was the dog’s hair. who knows.

However the most likely issue would be that the encoders are bent. If you look at the tip of the motor, there’s a spinning disk with two little sensors next to it. Those sensors are meant to be within a few mm of the disk, and the top of the sensors should line up with the top of the disk.

Also, what version of DexterOS do you have? Starting with 2.4.4, there’s a calibration tool that you can use. From the main page, the one with all the boxes, click the ? icon top right. You’ll have access to the calibration tool.

Hope this helps,


One more:
What batteries are you using?

If you’re using Alkaline batteries, you’re already headed for trouble.

Good, high-capacity NiMH batteries are a must. A GOOD charger that won’t overcharge them is mandatory.

Low, or nearly low, batteries can significantly affect accuracy too.

The ideal calibration configuration - for starters - is to begin with a freshly charged set of batteries and begin calibrating with full power.

1 Like