The Impossibility Of Current Software (Rant)

The “current” GoPiGo3 has weathered a few hardware versions, but has been effectively obsoleted by the constantly changing software it depends on - GPIO libraries and an operating system, to the point the manufacturer published software will not successfully install on any current Raspberry Pi operating system.

The new owner/manufacturer of the GoPiGo3 has maintained availability of a June 2022 GoPiGo OS image which is based on a “Long Term Support” Debian kernel which saw “End-Of-Life” in June 2024.

During the GoPiGo3 hey-day of February 2020, there was a great book with accompanying software that demonstrated using the GoPiGo3 to learn ROS - “Hands-On ROS for Robotics Programming”, Bernardo Ronquillo Japon, Packt Publishing.

Since the book’s publishing, all of the software required to use the book have reached end of life making it impossible to follow the book’s instructions. The learning target of the book, ROS, has been supplanted by the substantially different “ROS 2” and the simulation environment of the book Gazebo (Classic) will reach end of life this year on December 31st, 2024.

It really is an impossible task to keep a robot “current” when it relies on:

  • An installation package (tolerant of target Raspberry Pi and OS)
  • hardware drivers for Raspberry Pi specific to the particular OS version
  • Raspberry Pi operating system

And even more impossible to keep a ROS 2 robot current when over those items, ROS2 robots rely on:

  • A simulation package (for several “latest” laptop/desktop operating systems, and several processor architectures)
  • A visualization package (for several “latest” laptop/desktop operating systems, several processor architectures, and a specific ROS2 version)
  • ROS 2 function packages (for Raspberry Pi and a specific ROS 2 version)
  • ROS 2 system packages (for Raspberry Pi and a specific OS version)

In fact not only the GoPiGo3 has been effectively obsoleted, nearly every single “how to” article published and found after extensive searching has also been effectively obsoleted to the point that it is amazing anyone publishes anything in this space.

1 Like

That’s the challenge.

We can do two things:

  1. Continue to try to improve what we have.

  2. Punt the platform and move to one with better support.
     

In my case, I really don’t have the option of just picking and choosing the latest robot de jour; buying a new robot every time the wind changes or a software package reaches end-of-life.  (And even if I could, it would be extremely difficult and extremely expensive.)  I am effectively stuck where I am and I am trying to make-do with it, warts and all.  Software issues and all.  Including its limitations and annoyances.[1]

I can’t tell you what to do, but if you are so frustrated with the GoPiGo that it’s affecting your health, maybe it’s time for you to move on.

You will be sorely missed.

==================== Footnotes ====================

  1. The folks over at the Raspberry Pi forums have been remarkably helpful, to the point of my really needing to take them all out for a pint!  Once they understood the constraints I am dealing with, they really “got with the program” and have made a Herculean effort to help find solutions that work for me.
1 Like

There just is nothing to move on to, so just like you, I have to make do with what I have and keep updating the contents of my brain.

1 Like

What about that tempting Turtlebot you’ve been pining for?

It seems you’re comparing everything to the Turtlebot - the Turtlebot can do this, the Turtlebot can do that, the Turtlebot washes the dishes and does the laundry, it feeds the cat, brings in the mail and the newspaper - and so on.

Unfortunately the GoPiGo3 isn’t a Turtlebot, has never been a Turtlebot, and will likely never become a Turtlebot.

It also seems like you’re wanting Dave, (and maybe even Carl), to become Turtlebots - which isn’t going to happen, no matter what Dexter/Modular Robotics might do.

(Shaking head)
I just can’t shake the feeling that you are sufficiently dissatisfied with the GoPiGo as it is, that you should seriously consider moving on to something you will like better and is more suited to your goals.

You need to make a choice:

  • Accept the GoPiGo as it is and do what you can with it.
  • Abandon the GoPiGo and move on to something more advanced that meets your needs.  (And has a better, more active, forum.)

It’s really not a good idea to sit around, rocking back-and-forth, keening “Woe is me!  My robot isn’t a Turtlebot!” again and again.  It generates a lot of negative energy, (which you REALLY don’t need right now), raises your blood pressure, dumps loads of stressors into your blood-stream, and is generally a Bad Idea if you value your health.

I really don’t want to sound snarky, nor do I wish to sound sarcastic, but you really need to sit down with yourself and decide to either fish or cut bait.

Either move on or be grateful for what you have - it’s a binary choice.

What say ye?

1 Like

In my specific case, ROS(2) and a completely self-aware robot isn’t on my radar.

I already know that my own skill-level, though it may advance, will never reach that pinnacle of excellence needed to make that happen with ANY robot.

I have a GoPiGo3.  I am incredibly grateful that I have the opportunity to play with something like a GoPiGo3.  It gives me a reason to strive[1] and gives me a reason to expand and grow my coding skills - something I would probably never do absent the robot.

It’s an excellent hardware platform that meets my needs for “something to play with”.  Even if I end up butchering the PCB in the process.

The Turtlebot is (AFAIK), sufficiently self-contained that there’s little room for hardware exploration - which is what I enjoy.

Therefore, the GoPiGo suites me - even if the software, (and the robot), are dinosaurs.

  1. Translation = Get out of bed in the morning and do something. :laughing: :wink:
1 Like

Not really. There is no alternative hardware that can catapult me forward.

I have stolen what I could from the now stagnated TurtleBot3 software stack, and yesterday discovered some still advancing Create3 software ripe for the lifting.

I have come to be at peace with the state of robot hardware in the market being stalled, and that GoPi5Go-Dave just needs me to get creative

1 Like

IMHO, the next logical step for the GoPiGo3 ecosystem is a different processor for the platform - like maybe a Jetson Nano?  Maybe with an Xavier processor plug-in if you get the later version Nano carrier board?

I started working on porting the GoPiGo libraries to the Jetson Nano, (version 1), and I rapidly discovered that I didn’t know enough about how the libraries worked - how they moved and articulated about themselves - to competently port them to the Nano.

So, my decision was to step back, to learn more about what the libraries did and how they did it, and when I felt sufficiently competent, (not necessarily completely competent :wink:), I would take up that task again.

Right now, I believe that working on my display project - especially the Waveshare e-Paper with it’s SPI issues - is a good way to get started and work toward that ultimate goal.

I also believe that if I can successfully port the GoPiGo libraries to the Nano, that it will help expand what YOU can do with ROS[n], since ROS appears to be alive and well on the NVIDIA forums.

Unfortunately, this is something I won’t be able to do in the nearest future.

What say ye?

1 Like

Turtlebots:

  • The Turtlebot3 software development has died, so no reason to get on that bandwagon.
  • The Turtlebot4 is crippled by the “limited” Create3 controller.
  • The Create3 has lots of great features and great dev support, but has one critically limiting architecture feature - the controller runs ROS 2 natively at 80% processor and memory load when idle, and dies as an innocent bystander when ROS 2 message traffic expands.

There are some other commercially available robots - all too large for my little home.

  • The smallest of the large - the devs have stuck with ROS (original).
  • The Amazon bot is both large and relies on cloud computing

The interesting discovery of porting the Turtlebot3 software stack to GoPi5Go-Dave - their software makes the GoPiGo3 with a LIDAR map and navigate perfectly - unexpectedly amazing! Really a shame the Turtlebot3 development stopped two years ago.

1 Like

it is difficult for me to see putting more processing power on your GoPiGo3, and a different SBC family at that, as “the next logical step”.

The GoPiGo3 was designed for the Raspberry Pi, and is plug and play all day using GoPiGo OS.

1 Like

. . . .except that it lacks horsepower for more advanced AI/Robotics tasks.

IMHO, the “real” limiting factor for the GoPiGo, with respect to things like ROS[n] and AI is the limitations of the base platform - the Raspberry Pi.

So long as you stay within the educational context, the GoPiGo and the Raspberry Pi is a great combination - it can do just about anything your little heart desires.

Once you grow beyond that, the limitations of the platform begin to weigh heavily on it - as I have seen from many of your own posts - and especially as I have seen from both your current post above, and your wistfull looking for something like the Turtlebot, et. al.

A Turtlebot doesn’t seem to be in your future anytime soon.  Likewise, neither does a Create3.

Additionally, you’ve “ported” a lot of ROS code over to the GoPiGo ecosystem, so if there were a way to transmorgify the GoPiGo ecosystem to something with a bigger motor, it would be a Thing of Beauty!  Dave would be dancing in the streets and your ROS efforts would be much more fruitful.

1 Like

That day will come. Maybe. It would be cool to teach Dave to use his camera to drive on the edge of the street following me on the sidewalk.

The sidewalk has too many large gaps for Dave, so he will need to learn to watch for traffic, and parked cars, all while keeping track of me walking on the sidewalk.

More likely Dave will repeat his “1k run” adding autonomous path planning using his camera in place of me driving with the joystick.

1 Like