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:
- https://releases.ubuntu-mate.org/archived/18.04/
Ubuntu MATE 18.04 with the arm64 and armhf folders having the 64 bit and 32 bit images respectively. See:
https://releases.ubuntu-mate.org/archived/18.04/arm64/ubuntu-mate-18.04.2-beta1-desktop-arm64+raspi3-ext4.img.xz
https://releases.ubuntu-mate.org/archived/18.04/armhf/ubuntu-mate-18.04.2-beta1-desktop-armhf+raspi-ext4.img.xz - Index of /releases/bionic
Ubuntu 18.04 server. For example http://old-releases.ubuntu.com/releases/bionic/ubuntu-18.04.4-preinstalled-server-armhf+raspi3.img.xz
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”.