Hands On ROS - Chap 6 - Pt 1 - "Ubuntu 18.04 on Pi for ROS1"

This is my first post on my experiences in following “Hands-On ROS for Robotics Programming” by Bernardo Ronquillo Japón, handsonros, with the GoPiGo3 robot. I am beginning with Chapter 6, titled “Programming in ROS - Commands and Tools” because, for me, this is the most important chapter for the simple reason that herein is described how to set up the Raspberry Pi with Ubuntu 18.04 (Bionic). If I can’t get that set up, I won’t be able to follow the book as written, which is why I purchased the GoPiGo robot in the first place.

The book states to “Download the image from Choose an architecture | Download , selecting the Raspberry Pi version (recommended): AArch32 (ARMv7).” Unfortunately, that website NOW, in 2023, only has Ubuntu MATE 22.04.3 LTS. I then surveyed this forum to see what had gone before regarding this general subject (“Ubuntu 18.04 on Pi for ROS1”):

  • topic #6870, by @thomascoyle11859 on September 14, 2019, wherein Ubuntu MATE 18.04 was used with the same link given as in “Hands-On ROS”.
  • topic #7707, by @KeithW on July 18, 2020, where Ubuntu MATE 18.04 was used, presumably from the same link.
  • topic #8377, by @KeithW on July 9, 2021, continued, noting “I was actually having a little trouble finding the correct Ubuntu Mate 18.04 image file for the Raspberry Pi since it’s a bit old now. But I did come across this post: http://therobotacademy.com/003_Ubuntu_ROS_Melodic_image/ by @brjapon. The page has a download link which actually shows the maintainers as @cleoqc and “Modrobotics”. It was last updated 5/31/21.

So, there were problems locating the Ubuntu MATE 18.04 image at least by July 2021. However, http://therobotacademy.com/ is defunct so that is a dead end (unless @cleoqc or @brjapon have a copy somewhere).

Next, much Googling ensued, whereupon I found these web pages:

I next began imaging, using the latest Raspberry Pi Imager, v1.7.5, and trying what I found. Regarding the Ubuntu MATE 18.04 images for raspi, neither arm64 nor armhf versions worked on any of my Raspberry Pi 3 B+ boards (I have 3). I always got the same flashing green LED boot error (4 slow green flashes then 7 fast green flashes). I next tried the Ubuntu 18.04 server images for raspi with the same result.

Before anyone asks if there is a hardware problem on the Pi boards, I can boot Raspian Buster on them with no problem (Dexter OS works too) so I think the boards are fine.

I next tried the equivalent images but backward one LTS to Ubuntu 16.04 (links not shown but navigable from the above links), with a plan to upgrade to 18.04. Here I got a different error with the boot getting stuck at the rainbow screen.

Next, I went forward one LTS to Ubuntu 20.04 (navigable from the above links but tricky for the Ubuntu MATE images so here is the direct link https://releases.ubuntu-mate.org/focal/ for the arm64 and armhf folders). No Ubuntu MATE image worked for my Raspberry Pi 3 B+ boards. However, this Ubuntu 20.04 server image http://old-releases.ubuntu.com/releases/focal/ubuntu-20.04.4-preinstalled-server-arm64+raspi.img.xz DID work. Not the Ubuntu MATE 18.04 I wanted but at least something “Ubuntu” is working!

So, now what? Here are some questions and thoughts:

This looks like some kind of incompatibility but I have no idea what it might be so suggestions are appreciated.

Does anyone have or know of other Ubuntu 18.04 images for raspi that I might try?

Failing that, IMO, we are now 3 years out from the release of “Hands-On ROS for Robotics Programming” and it seems like there are difficulties ahead for anyone trying to use the instructions therein.

I can proceed with Ubuntu 20.04 server with ROS Noetic but it seems likely I’ll eventually run into some Ubuntu/ROS incompatibility with how things are done in “Hands-On ROS for Robotics Programming”.


I just looked through my archives. Doesn’t look like I saved any of the Ubuntu images themselves. I’ve got old images of how my robot was configured, but I don’t think those will be that helpful to you. But if you’d like to download one I’ll put it on a shared file for you to try. About 30MB


Thanks @cyclicalobsessive. Unfortunately, this turns out to be a duplicate location - I checked the raspi images there and they are the same as those in the link above:

Oh well…

1 Like

Sorry, didn’t read your post carefully.

Perhaps you want to load up my ROS 2 Humble Hawksbill Ubuntu 22.04 image, and follow my step by step intro to ROS2 while reading the intro of each chapter of HandsOnROS for the understanding of what is going on?

It doesn’t have a desktop so you will do everything from several console windows on your laptop or home computer remotely, but you will be able to read the HoR book for concepts, and my step by step docs on how to use the concepts in ROS 2. Additionally, if you get stuck, I will be able to fire up my ROSbot Dave on the same image and help you if something isn’t working as planned.

You will end up knowing the ROS that folks are using today, and will possibly learn more about the GoPiGo3, which is somewhat limited in HoR.

Give it some thought - take a quick tour of the docs by clicking on the “next step” link at the bottom of each page:


I am planning a post in your recent excellent new topic “Learning ROS - views” but for now, I’ll say that I will probably get to ROS2. However, the time does not seem right for me.

I have (or have access to) 17 books on ROS and only one of them is on ROS2 (“ROS2 in 5 days” - yeah, I wish!). I actually have some theoretical knowledge of ROS1 that I want to leverage. What I lack is practical “Hands-On” (there’s that word again handsonros) experience with a physical, ROS-compatible, robot. There are several out there but, for the hobbyist, there is none as inexpensive as the GoPiGo3. The TurtleBot 3 Burger (at ca. $650 USD) is my second choice and then the costs just skyrocket from there.

BTW, this feels like the early days of Python 3. Back in the day (2008), there were so many resources for Python 2, that I asked myself, why should learn Python 3 yet? Yes, I got there much later but in my own time and only when the need arose. For me, the same logic applies to this new kid, ROS2. After all, Humble was only released about 1.5 years ago. I’ll let ROS2 marinate a bit before I jump in. As far as I can tell, ROS1 isn’t broken, yet - well except every year or two when Ubuntu versioning makes breaking changes (:nauseated_face:), but I’ll save that for your new topic!


When you start your ROS2 journey - I highly recommend a look at the new iRobot Create3 for $400 sale/ $450 off sale. It runs a native ROS 2 controller, has built in basic protection sensors and can dock to recharge when the dock is “visible”, It also provides power and mounting for a Pi4 or Pi5 and an Oak-D-Lite stereo depth camera for visual SLAM for the really serious ROS enthusiast. It does not have the large user community of Turtlebot3, but the support team does seem responsive. Robotis has the best robot support around for the Turtlebot2 and 3. (I suggest staying away from ClearPath and the TurtleBot4).

Of course, I’'m pretty sure I’ll still be here propping my favorite “educational robot”, the GoPiGo3 since I have two active robots and should be put in time-out if I even think about adding another.


Well, he came and skidadled before the ink was dry. Don’t know his situation, but it seemed his interest in the GoPiGo3 and his book waned quickly.


Allow me to second @cyclicalobsessive’s recommendation of the GoPiGo.

It is, (IMHO), the robot that offers the most “bang for the buck” and provides a broader ecosystem of use-cases than any of the others on a dollar-per-dollar basis.

It does have significant limitations though because the original idea of the GoPiGo was that of an inexpensive entry-level introduction to robotics with enough chops to do most anything you might want as you learn and grow.

In fact, it has been used in various university studies and was even used to demonstrate a particularly gnarly aspect of quantum mechanics in a physical realm, so (IMHO), it is limited only by the imagination of its owner

ROS, (and ROS2), wasn’t a gleem in its daddy’s eyes when the original GoPiGo was designed, and the Raspberry Pi was significantly less powerful than it is today.

Can it run and support ROS/2?  Of course it can.  Is it a trivial undertaking?  Absolutely not.  Then again, ROS/2 isn’t a trivial undertaking on other platforms either.

I believe that current advancements in the Raspberry Pi, and research I am planning on cross-platform support, (particularly with the Jetson Nano), will breath new life into this platform.

What we need is additional support from like-minded users who are willing to help preserve and support this excellent platform.

What say ye?


Aside from my earlier “Welcome in!”, let me welcome you to an interesting mission, “if you choose to accept it” and I will guarantee that you will likely “boldly go where no GoPiGo has gone before.” :wink:

Both @KeithW and @cyclicalobsessive have done much fundamental research on ROS on the GoPiGo and @cyclicalobsessive, (being the “obsessive” that he is, :wink:), has developed a vast library of measurement and monitoring routines that can help you instrument your robot if you decide to use them.

Most important, (unlike other projects I have tried to work with), they are both willing to provide all the detailed help and advice you may need when using their libraries.

You will find them remarkably patient and helpful, which is a true blessing.


thanks for sharing . very interesting