ROS2 GoPiGo3 Dave's 1k Run

Yeah - for me that just happens to be what I learned to keep ROS from crashing on a remote robot. Not necessarily the best option - just the one I know. It did take a fair bit of googling to figure out how to configure it, but now that I have that I do enjoy having three terminals on one screen (downsides are you see less in any given terminal, and scrolling in screen requires remembering the right key sequence).

The price has really come down - still not cheap, but you can get a very good 3D printer for about US$400 (see this review of the Prusa Mini+ [I’ve always had good luck with Wirecutter reviews - it’s my first go-to when I’m looking for a new product]).

The design learning curve is real. I’ve been using Fusion 360 - they have a free license for hobbyists (although don’t know if that’s available in Russia). I like the parametric design features. Blender does seem to be a popular program. There is also FreeCAD, which some people seem to like.

And I think the machines are less fiddly than they used to be (or the slicers and firmware is better) - it’s more plug and play than before.



For quite some time I have been baffled by the “low” maximum speed Dave would go under ROS control.

When I first built Dave, I did hardware testing and characterizations to make sure he was working and to understand any differences of the “new GoPiGo3” from Carl’s generation. I recorded in my “Dave Specifications” a max speed of 0.25m/s for command of 450 DPS.

But the fastest I was getting out of my ROS2 GoPiGo3 node was 0.1m/s.

First discovery was that my wheel logger was resetting the GoPiGo3 red board “speed limit”.

After fixing that, I still was only seeing 0.17 m/s which is about 300 DPS. That number triggered a connection. The GoPiGo3 class instantiates with a DEFAULT_SPEED of 300 DPS. There is a NO_LIMIT_SPEED constant of 1000, but the true no limit speed is actually set by gpg.set_motor_limits(MOTOR_LEFT+MOTOR_RIGHT, 0) - zero means no speed limit!

I added this line to Dave’s ROS “on_twist” callback and sure enough, he could zip like he did with my “no ROS” wheelDiaDriveTest program.

BUT he doesn’t drive straight when the “turbo charger” is invoked. I had to program turbo bias and bias threshold parameters into the ROS node, and tune the SNES gamepad parameters again.

I also had to train myself to slow before stopping to prevent faceplants, and train my fingers on the faceplant recovery maneuver (turbo reverse, immediate turbo forward, immediate release).

Now Dave should be able to do his “ROS GoPiGo3 1k Time-Trial” at 0.25m/s for an expected 1k pace around 1:07.



You make that sound like a real thing.

Up until now, I assumed that this was some arbitrary tongue-in-cheek name you had given to trying to get Dave to travel distances at speed.

Is this a Real Thing?  Is there a link to it?

1 Like

Neurotics build castles in the air.
Psychotics move in.

No it is not a thing to anyone but me.


Oh, it’s a thing for me as well - looking forward to following the progress. Not quite the Indy Autonomous Challenge, but close. Might not make the ERPN* main channel, but would definitely make ERPN2

  • ERPN = Electronics and Robotics Programming network. Which is a delusion I have I personally would find it way more interesting than ESPN. Although maybe that’s what YouTube is for :slight_smile:

Went to the Wirecutter article, (Wow! Really well written), and then to the Prusa site. Impressive! (@cleoqc, @mitch.kremm, are you looking for a 3D printer?)

It reminds me of my own GoPiGo review article.

I was howling at one of the reviews though, where this Army guy is talking about all the El-Crappo printers he has in his collection, (for target practice, I presume), and then he gets to the Prusa printer:

It’s like the googly eyes on the GoPiGo. Silly? Yes. But it’s fun; and even ancient and cobwebby hobbiests need a laugh now and then.

Then he talks about the printer.

You’d think he got religion! Well, after five or so prior printer purchases that turned out, (ahem!), “sub-par”, his enthusiasm is understandable.

On the other side, there appear to be a few issues of build quality as several users reported units with varying problems on arrival. One reported the cross-member seriously out of alignment, which is scary.

All were resolved, but the thought of ordering a printer, going through the hassle of getting it shipped to Russia, and then finding out that it doesn’t work scares the bejesus outta me.

All in all it sounds good, with the few grains of salt thrown in.

My biggest concern is the un-supported cross-member. I can easily imagine it slooooowly drooping over time.


Count me in for a subscription to ERPN/ERPN2!

Beats the :face_with_symbols_over_mouth: out of The Weather Channel’s inane coverage and endless reality TV reruns.

And yes, I am watching this with both anticipation and shame while Charlie collects dust.

@cyclicalobsessive, what happened to your YouTube channel(s)? One day I had an active subscription, the next day - nothing. I looked forward to your videos about Carl and I wonder what happened.


It’s complicated. Sorry.


with confirmation that raspistill works on Ubuntu 20.04. So the lack of 64-bit support for the Python picamera module will not prevent Dave from taking a few snapshots along his run.

Raspistill has a time lapse capability that can snap 640x480 jpeg images at 1 fps without needing to skip frames. (Will have to confirm it can keep up when the processor is also loaded by ROS nodes.)

I stole the tilt mount from Carl’s discarded Husky-Lens. Now Dave’s camera angle can be adjusted so the bottom of the frame shows the ground 12 inches ahead, and the top of the frame shows the top of my head when I stand 10 feet away.

Running raspistill at 1 fps for a max of 2 hours will generate 7200 frames, which at 640x480 should take about 2.5GB of file space. (19GB free currently)

Running the time lapse image capture also adds about 40mA load on the battery, which will steal about 20 to 30 minutes off an endurance run, but should not be a factor for this 1k run.

Hopefully I will be able to use the images for testing Dave’s future “ROS2 Autonomous Driving on the Sidewalk” node that he will need to up his 1k running game.


Cool beanies!

Glad that YOU are celebrating some success.

Here’s my poor excuse for a project, being torn down. . . .

. . . . waiting for a different board to be installed.

At least I will have LOTS of spare parts!


and mourning some setbacks.

On Mondays and Fridays, I transport myself for a 5k run/walk over the self-same sidewalks Dave has been planning to travel for his “Great GoPiGo Gallup”. My mother used to scold me for looking down so much while walking, and I guess I haven’t licked the habit. As I was running and looking down I realized -

These sidewalks are not safe for Dave!


That bottle cap is about 28mm across. Dave’s little castor ball is only about 18mm across, and GoPiGo3 robots don’t jump - not tall buildings, not over the moon, and certainly not over these sidewalk expansion joints.

Ugh - reality is a pain.


You gotta get your 'bots away from the kryptonite. . . and wash the suit with the red cape. :wink:

Or rig up something with a couple of 360° servos/stepper motors so Dave can vault over the cracks.

Or maybe a larger trailing wheel?  Maybe the running track at the local park/school had a more suitable surface?


Famous quote:
“No battle plan survives contact with the enemy” and certainly no programming effort survives contact with reality. :stuck_out_tongue:


Yes, that is a possible answer to both of the issues discovered yesterday:

  • neighborhood sidewalk is not safe for Dave’s record attempt
  • wife doesn’t want us to be in the mouths of the neighborhood

There is a sidewalk around a lake, near where we go birding, that might just work. Dave might have to tolerate getting sniffed by a dog or two…


This might not be totally out of the possible, if Dave could learn a “balance bot caster jump”. After crossing the sidewalk crack with his main wheels, he could initiate an intentional face plant motion into a balance bot mode, and make his caster “jump” over the cracks.

Unfortunately for Dave, his coach doesn’t have the patience to teach him that maneuver.


How about a bigger caster, maybe on the same order of magnitude as the main wheels?

You could use that 3D printer you’ve been hiding from the wife to print that trailing axle and mounts. :crazy_face: :wink:


Couldn’t find a COTS 1.75” ball caster, and don’t like the thought of pitting the red board’s PID controller against a swivel caster.


While we are talking about the wheels, I would LOVE to find a source for the nice soft, grippy wheels the GoPiGo and the Gigglebot uses.

I have other things that would benefit greatly from wheels like that.

@cleoqc @mitch.kremm
Do you know where I can get wheels like those used on your robots?


I have a ball-bearing swivel caster on Charlie and it works quite well.

Of course it’s a relatively small caster. . . but you have to start somewhere, 'eh?


Google “robot wheels” - quite a selection returned


And the vast majority are harder plastic that don’t grip worth :face_with_symbols_over_mouth:!

The GoPiGo wheels fit what I want to fit and the tires aren’t hard plastic.

I’ll try that though and see what I can find over here.