GoPiGo Motors Running at Different Speeds?

Hello. We have been unable to get our GoPiGo to drive in a straight line. It appears that the two motors are running at slightly different speeds. Interestingly, it doesn’t actually appear to be the motors themselves that are the culprits, as swapping the ports that the motors are connected to causes the issue to flip to the other motor. So, if motor “A” was running slower than motor “B”, then after swapping which ports they plug into, motor “B” is now the motor which runs slower.

The fact that the motors run at different speeds makes it difficult to program the GoPiGo to do even simple navigation.

Thank you for your advice.
-= Brandon.

Hello Brandon
I’m sorry you’re facing that issue. I never experienced it myself, but it sounds frustrating.
There’s a write-up that might be useful, here: http://www.dexterindustries.com/GoPiGo/getting-started-with-your-gopigo-raspberry-pi-robot-kit-2/add-trim-to-the-motors/

You can start at sudo python basic_test_all.py
The current firmware is 1.6

Let me know if this is helpful!
Cleo

Brandon, one other suggestion: add rubber bands to both wheels. Wrap a rubber band around it to get a better grip, and put your battery case up on top of the canopy to get the weight directly on the wheels.

Thank you for your responses.

What’s particularly frustrating is that the speed of the problematic wheel/port isn’t even consistent, so the trim adjustment unfortunately wouldn’t help us. Also, regarding traction, the issue is reproducible even when positioned upside down.

The GoPiGo has hardly been used yet. We just got it, and out of the box we were unable to get it to drive straight.

Please see this video we made earlier tonight, demonstrating the issue we’re having…

Thanks again,
-= Brandon.

Thanks for the video, the issue is quite clear!

On the desktop, there’s a ‘test and troubleshoot’ icon. Would you mind running that? It will create a log file, if you can post the log file here it would help a lot. Keep the gopigo on its back, as it will make use of its motors.

Also, in the video, can you confirm that the Gopigo is using good batteries? I can’t see the batteries but that doesn’t mean they’re not there, with the viewing angle being what it is.

Cleo

Agree that the log file would help, but it looks like everything is working fairly normally. We have a trim function that might help solve the issue.

Sorry for the delay. See the log at the bottom of this post.

Regarding the batteries, they were all brand new fresh batteries when we put them in. I just metered them, after all the testing we’ve been doing, and we’re just now down to 10v (out of the 12v possible). I’m not feeling it’s related to the batteries.

As I mentioned earlier, the issue is not consistent. Without changing anything, sometimes the wheels move perfectly at the same speed, and then others not. In a situation where one wheel is not consistently moving at a different speed, the trim function does not seem to be the correct route. Would you agree? Seems like if I speed it up, then it will go too fast half the time.

I must say, at this point I am quite frustrated. After dropping $400 for a GoBox subscription for my son, the delivered product has so far given me buyers remorse. Unfortunately, first, he was quite disappointed when the unit initially arrived, and he put it together, all he could do with it was wait another month for an actual mission to do. I had presumed his first mission would have been included. Guess not. So, after waiting for a month for something to arrive for him to actually do with the GoPiGo, we were disappointed that the first mission didn’t even include a sensor. Instead it was simply to drive the GoPiGo around, which he already could do (why did we have to wait a month for this “mission”??). This was the mission? Ok, so let’s drive it around. Then we were frustrated by the fact that it does not even drive in a straight line reliably enough to complete that simplistic goal.

I’m not sure if we’ve got a bum unit, or what. All I know is, at this point, my son’s pretty much done with the GoPiGo, and I’m getting really close too. As a programmer myself, I understand that the journey is often the lesson. However, if we have gear that’s malfunctioning, we’re essentially setup to fail. I suspect that wasn’t the intention.

-= Brandon.

Here is the log…

Check space left

Filesystem Size Used Avail Use% Mounted on
/dev/root 3.5G 2.9G 427M 88% /
devtmpfs 182M 0 182M 0% /dev
tmpfs 38M 424K 37M 2% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 75M 0 75M 0% /run/shm
/dev/mmcblk0p1 56M 20M 36M 36% /boot

Check for dependencies

python 2.7.3-4+deb7u1 install ok installed
python-pip 1.1-3 install ok installed
git 1:1.7.10.4-1+wheezy3+rpi1 install ok installed
libi2c-dev 3.1.1+svn-1 install ok installed
python-serial 2.5-2.1 install ok installed
python-rpi.gpio 0.6.2~wheezy-1 install ok installed
i2c-tools 3.1.1+svn-1 install ok installed
python-smbus 3.1.1+svn-1 install ok installed
arduino 1:1.0.1+dfsg-7 install ok installed
minicom 2.6.1-1 install ok installed
scratch 1.4.20131203-2 install ok installed

wiringPi Found
wiringPi Found
I2C already removed from blacklist
SPI already removed from blacklist

Check for addition in /modules

I2C-dev already there
i2c-bcm2708 already there
spi-dev already there

Hardware revision

gpio version: 2.32
Copyright © 2012-2015 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
Type: Model B+, Revision: 02, Memory: 512MB, Maker: Sony

  • Device tree is enabled.
  • This Raspberry Pi supports user-level GPIO access.
    -> See the man-page for more details
    -> ie. export WIRINGPI_GPIOMEM=1

Check the /dev folder

i2c-1
spidev0.0
spidev0.1
ttyAMA0

USB device status

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=vend., Driver=rtl8192cu, 480M

Checking for Atmega chip

avrdude: Version 5.10, compiled on Jun 18 2012 at 12:38:29
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch

     System wide configuration file is "/etc/avrdude.conf"
     User configuration file is "/root/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : unknown
     Using Programmer              : gpio
     AVR Part                      : ATMEGA328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : GPIO
     Description     : Use sysfs interface to bitbang GPIO lines

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f

avrdude done. Thank you.

Checking I2C bus for devices

Checking I2C bus 0

Error: Could not open file /dev/i2c-0’ or/dev/i2c/0’: No such file or directory

Checking I2C bus 1

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – -- – -- – 08 – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --

Checking for firmware version and CPU Speed and Voltage

v 1.6
CPU speed: 2
8.04 V

CHECKING ENCODER READINGS
0 0
Both motors moving Forward with LED On
after 5 sec 116 127
Both motors stopped with LED Off
None after stop cmd 121 131
None after 2 more sec 122 132
Both motors moving back with LED On
after 5 sec 237 258
Both motors stopped with LED Off
None after stop cmd 241 262
None after 2 more sec 243 263

CHECKING ENCODER TARGETING

Initial encoder read vals: 0 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 0
Final encoder read vals: 72 79

Initial encoder read vals: 0 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 0
Final encoder read vals: 72 78

Initial encoder read vals: 0 2
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 0
Final encoder read vals: 72 79

Initial encoder read vals: 0 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 0
Final encoder read vals: 72 79

Initial encoder read vals: 0 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 1
Enc tgt Status: 0
Final encoder read vals: 72 79

(crickets) :wink:

Hey Brandon,
Sorry for taking this long to reply. I think this one fell through the crack. It looks like you might have received a GoPiGo which does not work very well and we are not really sure what the problem is. Thanks a lot for testing it out and I am really sorry for the frustration.

Can you contact us here, under “General Questions and Feedback”: http://www.dexterindustries.com/site/?page_id=65 and we will ship you a new GoPiGo board so that you can try it out and see if it works any better.

Again, I’m really sorry to hear about this; we’ll make it right immediately.
-Karan

Thank you.